log-error-buffer.c revision 2ac5f36aa7c2e7a07ba8815d43a6d7483f62e74c
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo Sirainen/* Copyright (c) 2013-2016 Dovecot authors, see the included COPYING file */
30a5cfac4dc13cc89f36b7b54f889fbb149f7e08Timo Sirainen unsigned char prefix_text[FLEXIBLE_ARRAY_MEMBER];
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen unsigned int count;
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainenstruct log_error_buffer *log_error_buffer_init(void)
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainenstatic void log_error_buffer_delete_head(struct log_error_buffer *buf)
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen /* last one */
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainenvoid log_error_buffer_add(struct log_error_buffer *buf,
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen /* @UNSAFE */
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen data = i_malloc(sizeof(*data) + prefix_size + text_size);
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen memcpy(data->prefix_text, error->prefix, prefix_size);
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen memcpy(data->prefix_text + prefix_size, error->text, text_size);
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainenvoid log_error_buffer_deinit(struct log_error_buffer **_buf)
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainenlog_error_buffer_iter_init(struct log_error_buffer *buf)
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen iter = i_new(struct log_error_buffer_iter, 1);
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainenlog_error_buffer_iter_next(struct log_error_buffer_iter *iter)
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen iter->error.prefix = (const void *)data->prefix_text;
6a3c23e577be41f7521995c5dae19abb2fb4ffb6Timo Sirainen iter->error.text = (const void *)(data->prefix_text +