annotate src/lib/failures.h @ 22664:fea53c2725c0

director: Fix director_max_parallel_moves/kicks type Should be uint, not time.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 09 Nov 2017 12:24:16 +0200
parents 89c42f824f84
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6410
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 5355
diff changeset
1 #ifndef FAILURES_H
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 5355
diff changeset
2 #define FAILURES_H
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
8628
e85c7cb22ad7 If login process crashes, log the IP address that (maybe) caused it.
Timo Sirainen <tss@iki.fi>
parents: 8407
diff changeset
4 struct ip_addr;
e85c7cb22ad7 If login process crashes, log the IP address that (maybe) caused it.
Timo Sirainen <tss@iki.fi>
parents: 8407
diff changeset
5
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
6 /* Default exit status codes that we could use. */
903
fd8888f6f037 Naming style changes, finally got tired of most of the typedefs. Also the
Timo Sirainen <tss@iki.fi>
parents: 866
diff changeset
7 enum fatal_exit_status {
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
8 FATAL_LOGOPEN = 80, /* Can't open log file */
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
9 FATAL_LOGWRITE = 81, /* Can't write to log file */
866
43a42c16bba8 In case of internal errors in logging, exit() with FATAL_LOGERROR.
Timo Sirainen <tss@iki.fi>
parents: 811
diff changeset
10 FATAL_LOGERROR = 82, /* Internal logging error */
43a42c16bba8 In case of internal errors in logging, exit() with FATAL_LOGERROR.
Timo Sirainen <tss@iki.fi>
parents: 811
diff changeset
11 FATAL_OUTOFMEM = 83, /* Out of memory */
43a42c16bba8 In case of internal errors in logging, exit() with FATAL_LOGERROR.
Timo Sirainen <tss@iki.fi>
parents: 811
diff changeset
12 FATAL_EXEC = 84, /* exec() failed */
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
13
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
14 FATAL_DEFAULT = 89
903
fd8888f6f037 Naming style changes, finally got tired of most of the typedefs. Also the
Timo Sirainen <tss@iki.fi>
parents: 866
diff changeset
15 };
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
16
6539
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
17 enum log_type {
9959
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
18 LOG_TYPE_DEBUG,
6539
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
19 LOG_TYPE_INFO,
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
20 LOG_TYPE_WARNING,
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
21 LOG_TYPE_ERROR,
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
22 LOG_TYPE_FATAL,
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
23 LOG_TYPE_PANIC,
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
24
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
25 LOG_TYPE_COUNT,
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
26 LOG_TYPE_OPTION
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
27 };
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
28
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
29 struct failure_line {
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
30 pid_t pid;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
31 enum log_type log_type;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
32 const char *text;
6539
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
33 };
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
34
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
35 struct failure_context {
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
36 enum log_type type;
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
37 int exit_status; /* for LOG_TYPE_FATAL */
12276
e68366e88099 Failure logging supports now getting timestamp as parameter.
Timo Sirainen <tss@iki.fi>
parents: 12275
diff changeset
38 const struct tm *timestamp; /* NULL = use time() + localtime() */
17894
e0f37f309685 log_timestamp setting supports now %{usecs}
Timo Sirainen <tss@iki.fi>
parents: 15201
diff changeset
39 unsigned int timestamp_usecs;
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
40 };
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
41
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42 #define DEFAULT_FAILURE_STAMP_FORMAT "%b %d %H:%M:%S "
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
44 typedef void failure_callback_t(const struct failure_context *ctx,
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
45 const char *format, va_list args);
6539
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
46
7041
cc70ab74f4f3 Make failure_log_type_prefixes[] and failure_exit() public.
Timo Sirainen <tss@iki.fi>
parents: 6638
diff changeset
47 extern const char *failure_log_type_prefixes[];
14064
0d224f2c3152 liblib: Added failure_log_type_names[] array.
Timo Sirainen <tss@iki.fi>
parents: 13817
diff changeset
48 extern const char *failure_log_type_names[];
7041
cc70ab74f4f3 Make failure_log_type_prefixes[] and failure_exit() public.
Timo Sirainen <tss@iki.fi>
parents: 6638
diff changeset
49
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
50 void i_log_type(const struct failure_context *ctx, const char *format, ...)
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
51 ATTR_FORMAT(2, 3);
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
52
9946
12089b6343bf Added ATTR_HOT and ATTR_COLD macros. Use them in a couple of places.
Timo Sirainen <tss@iki.fi>
parents: 9224
diff changeset
53 void i_panic(const char *format, ...) ATTR_FORMAT(1, 2) ATTR_NORETURN ATTR_COLD;
12089b6343bf Added ATTR_HOT and ATTR_COLD macros. Use them in a couple of places.
Timo Sirainen <tss@iki.fi>
parents: 9224
diff changeset
54 void i_fatal(const char *format, ...) ATTR_FORMAT(1, 2) ATTR_NORETURN ATTR_COLD;
12089b6343bf Added ATTR_HOT and ATTR_COLD macros. Use them in a couple of places.
Timo Sirainen <tss@iki.fi>
parents: 9224
diff changeset
55 void i_error(const char *format, ...) ATTR_FORMAT(1, 2) ATTR_COLD;
6411
6a64e64fa3a3 Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
56 void i_warning(const char *format, ...) ATTR_FORMAT(1, 2);
6a64e64fa3a3 Renamed __attr_*__ to ATTR_*. Renamed __attrs_used__ to ATTRS_DEFINED.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
57 void i_info(const char *format, ...) ATTR_FORMAT(1, 2);
9959
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
58 void i_debug(const char *format, ...) ATTR_FORMAT(1, 2);
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
59
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
60 void i_fatal_status(int status, const char *format, ...)
9946
12089b6343bf Added ATTR_HOT and ATTR_COLD macros. Use them in a couple of places.
Timo Sirainen <tss@iki.fi>
parents: 9224
diff changeset
61 ATTR_FORMAT(2, 3) ATTR_NORETURN ATTR_COLD;
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
62
6539
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
63 /* Change failure handlers. */
6638
e2a4722f1b9b Fix for compiling with g++ 3.x.
Timo Sirainen <tss@iki.fi>
parents: 6539
diff changeset
64 #ifndef __cplusplus
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
65 void i_set_fatal_handler(failure_callback_t *callback ATTR_NORETURN);
6638
e2a4722f1b9b Fix for compiling with g++ 3.x.
Timo Sirainen <tss@iki.fi>
parents: 6539
diff changeset
66 #else
e2a4722f1b9b Fix for compiling with g++ 3.x.
Timo Sirainen <tss@iki.fi>
parents: 6539
diff changeset
67 /* Older g++ doesn't like attributes in parameters */
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
68 void i_set_fatal_handler(failure_callback_t *callback);
6638
e2a4722f1b9b Fix for compiling with g++ 3.x.
Timo Sirainen <tss@iki.fi>
parents: 6539
diff changeset
69 #endif
1038
60646878858e Function typedefs now define them as functions, not function pointers.
Timo Sirainen <tss@iki.fi>
parents: 953
diff changeset
70 void i_set_error_handler(failure_callback_t *callback);
60646878858e Function typedefs now define them as functions, not function pointers.
Timo Sirainen <tss@iki.fi>
parents: 953
diff changeset
71 void i_set_info_handler(failure_callback_t *callback);
9959
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
72 void i_set_debug_handler(failure_callback_t *callback);
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
73 void i_get_failure_handlers(failure_callback_t **fatal_callback_r,
9224
da94fa5953ec Added i_get_failure_handlers().
Timo Sirainen <tss@iki.fi>
parents: 9215
diff changeset
74 failure_callback_t **error_callback_r,
9959
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
75 failure_callback_t **info_callback_r,
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
76 failure_callback_t **debug_callback_r);
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
77
7228
45a083e03fba Default failure functions are now public.
Timo Sirainen <tss@iki.fi>
parents: 7041
diff changeset
78 /* Send failures to file. */
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
79 void default_fatal_handler(const struct failure_context *ctx,
7228
45a083e03fba Default failure functions are now public.
Timo Sirainen <tss@iki.fi>
parents: 7041
diff changeset
80 const char *format, va_list args)
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
81 ATTR_NORETURN ATTR_FORMAT(2, 0);
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
82 void default_error_handler(const struct failure_context *ctx,
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
83 const char *format, va_list args)
7228
45a083e03fba Default failure functions are now public.
Timo Sirainen <tss@iki.fi>
parents: 7041
diff changeset
84 ATTR_FORMAT(2, 0);
45a083e03fba Default failure functions are now public.
Timo Sirainen <tss@iki.fi>
parents: 7041
diff changeset
85
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
86 /* Send failures to syslog() */
12275
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
87 void i_syslog_fatal_handler(const struct failure_context *ctx,
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
88 const char *format, va_list args)
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
89 ATTR_NORETURN ATTR_FORMAT(2, 0);
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
90 void i_syslog_error_handler(const struct failure_context *ctx,
4933c3095ee2 Cleaned up log callbacks and made them more extensible.
Timo Sirainen <tss@iki.fi>
parents: 9959
diff changeset
91 const char *format, va_list args)
6539
a93a7738c0ec Changed failure callbacks to take failure type parameter, so it's no longer
Timo Sirainen <tss@iki.fi>
parents: 6411
diff changeset
92 ATTR_FORMAT(2, 0);
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
93
9959
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
94 /* Open syslog and set failure/info/debug handlers to use it. */
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
95 void i_set_failure_syslog(const char *ident, int options, int facility);
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
96
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
97 /* Send failures to specified log file instead of stderr. */
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
98 void i_set_failure_file(const char *path, const char *prefix);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
99
2000
c7c19f5071c3 Write all logging through master process. Fixes problems with log rotation,
Timo Sirainen <tss@iki.fi>
parents: 1038
diff changeset
100 /* Send errors to stderr using internal error protocol. */
c7c19f5071c3 Write all logging through master process. Fixes problems with log rotation,
Timo Sirainen <tss@iki.fi>
parents: 1038
diff changeset
101 void i_set_failure_internal(void);
8741
d74fdb84ab8b pop3/imap: When master closes our log fd, don't die when trying to log disconnect reason.
Timo Sirainen <tss@iki.fi>
parents: 8628
diff changeset
102 /* If writing to log fails, ignore it instead of existing with
d74fdb84ab8b pop3/imap: When master closes our log fd, don't die when trying to log disconnect reason.
Timo Sirainen <tss@iki.fi>
parents: 8628
diff changeset
103 FATAL_LOGWRITE or FATAL_LOGERROR. */
d74fdb84ab8b pop3/imap: When master closes our log fd, don't die when trying to log disconnect reason.
Timo Sirainen <tss@iki.fi>
parents: 8628
diff changeset
104 void i_set_failure_ignore_errors(bool ignore);
2000
c7c19f5071c3 Write all logging through master process. Fixes problems with log rotation,
Timo Sirainen <tss@iki.fi>
parents: 1038
diff changeset
105
811
664de3231e33 Added info_log_file setting and i_info() function to write to it. Default is
Timo Sirainen <tss@iki.fi>
parents: 801
diff changeset
106 /* Send informational messages to specified log file. i_set_failure_*()
664de3231e33 Added info_log_file setting and i_info() function to write to it. Default is
Timo Sirainen <tss@iki.fi>
parents: 801
diff changeset
107 functions modify the info file too, so call this function after them. */
664de3231e33 Added info_log_file setting and i_info() function to write to it. Default is
Timo Sirainen <tss@iki.fi>
parents: 801
diff changeset
108 void i_set_info_file(const char *path);
664de3231e33 Added info_log_file setting and i_info() function to write to it. Default is
Timo Sirainen <tss@iki.fi>
parents: 801
diff changeset
109
9959
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
110 /* Send debug-level message to the given log file. The i_set_info_file()
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
111 function modifies also the debug log file, so call this function after it. */
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
112 void i_set_debug_file(const char *path);
80472a77d765 Added debug_log_path setting and i_debug() call.
Timo Sirainen <tss@iki.fi>
parents: 9946
diff changeset
113
8407
511ceaaa2268 Logging: Support specifying a prefix also for syslog logging.
Timo Sirainen <tss@iki.fi>
parents: 7228
diff changeset
114 /* Set the failure prefix. */
15201
d00cf8e0dae7 i_set_failure_prefix() now takes printf-like parameters.
Timo Sirainen <tss@iki.fi>
parents: 14064
diff changeset
115 void i_set_failure_prefix(const char *prefix_fmt, ...) ATTR_FORMAT(1, 2);
d00cf8e0dae7 i_set_failure_prefix() now takes printf-like parameters.
Timo Sirainen <tss@iki.fi>
parents: 14064
diff changeset
116 /* Set prefix to "". */
d00cf8e0dae7 i_set_failure_prefix() now takes printf-like parameters.
Timo Sirainen <tss@iki.fi>
parents: 14064
diff changeset
117 void i_unset_failure_prefix(void);
18222
89c42f824f84 lib: Added i_get_failure_prefix()
Timo Sirainen <tss@iki.fi>
parents: 17894
diff changeset
118 /* Returns the current failure prefix (never NULL). */
89c42f824f84 lib: Added i_get_failure_prefix()
Timo Sirainen <tss@iki.fi>
parents: 17894
diff changeset
119 const char *i_get_failure_prefix(void);
801
86224ff16bf6 Drop root privileges earlier. Close syslog more later in imap-master when
Timo Sirainen <tss@iki.fi>
parents: 220
diff changeset
120 /* Prefix failures with a timestamp. fmt is in strftime() format. */
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
121 void i_set_failure_timestamp_format(const char *fmt);
8628
e85c7cb22ad7 If login process crashes, log the IP address that (maybe) caused it.
Timo Sirainen <tss@iki.fi>
parents: 8407
diff changeset
122 /* When logging with internal error protocol, update the process's current
13817
618d3937f511 Added i_set_failure_send_prefix() and renamed i_set_failure_ip() to _send_ip().
Timo Sirainen <tss@iki.fi>
parents: 12276
diff changeset
123 IP address / log prefix by sending it to log process. This is mainly used to
618d3937f511 Added i_set_failure_send_prefix() and renamed i_set_failure_ip() to _send_ip().
Timo Sirainen <tss@iki.fi>
parents: 12276
diff changeset
124 improve the error message if the process crashes. */
618d3937f511 Added i_set_failure_send_prefix() and renamed i_set_failure_ip() to _send_ip().
Timo Sirainen <tss@iki.fi>
parents: 12276
diff changeset
125 void i_set_failure_send_ip(const struct ip_addr *ip);
618d3937f511 Added i_set_failure_send_prefix() and renamed i_set_failure_ip() to _send_ip().
Timo Sirainen <tss@iki.fi>
parents: 12276
diff changeset
126 void i_set_failure_send_prefix(const char *prefix);
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
127
5140
4c570d6484b7 Added i_set_failure_exit_callback()
Timo Sirainen <tss@iki.fi>
parents: 4719
diff changeset
128 /* Call the callback before exit()ing. The callback may update the status. */
4c570d6484b7 Added i_set_failure_exit_callback()
Timo Sirainen <tss@iki.fi>
parents: 4719
diff changeset
129 void i_set_failure_exit_callback(void (*callback)(int *status));
7041
cc70ab74f4f3 Make failure_log_type_prefixes[] and failure_exit() public.
Timo Sirainen <tss@iki.fi>
parents: 6638
diff changeset
130 /* Call the exit callback and exit() */
9946
12089b6343bf Added ATTR_HOT and ATTR_COLD macros. Use them in a couple of places.
Timo Sirainen <tss@iki.fi>
parents: 9224
diff changeset
131 void failure_exit(int status) ATTR_NORETURN ATTR_COLD;
5140
4c570d6484b7 Added i_set_failure_exit_callback()
Timo Sirainen <tss@iki.fi>
parents: 4719
diff changeset
132
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
133 /* Parse a line logged using internal failure handler */
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
134 void i_failure_parse_line(const char *line, struct failure_line *failure);
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents: 8741
diff changeset
135
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
136 void failures_deinit(void);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
137
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
138 #endif