static bool failure_ignore_errors = FALSE, log_prefix_sent = FALSE;
static bool coredump_on_error = FALSE;
+typedef int (*failure_write_to_file_t)(enum log_type type, string_t *data, size_t prefix_len);
+typedef string_t *(*failure_format_str_t)(const struct failure_context *ctx,
+ size_t *prefix_len_r, const char *format,
+ va_list args);
+typedef void (*failure_on_handler_failure_t)(const struct failure_context *ctx);
+typedef void (*failure_post_handler_t)(const struct failure_context *ctx);
+
+
+struct failure_handler_vfuncs {
+ failure_write_to_file_t write;
+ failure_format_str_t format;
+ failure_on_handler_failure_t on_handler_failure;
+ failure_post_handler_t post_handler;
+};
+
+struct failure_handler_config {
+ int fatal_err_reset;
+ struct failure_handler_vfuncs *v;
+};
+
static void ATTR_FORMAT(2, 0)
i_internal_error_handler(const struct failure_context *ctx,
const char *format, va_list args);