Mercurial > dovecot > core-2.2
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 |
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 | 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 | 42 #define DEFAULT_FAILURE_STAMP_FORMAT "%b %d %H:%M:%S " |
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 | 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 | 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 | 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 | 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 | 98 void i_set_failure_file(const char *path, const char *prefix); |
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 | 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 | 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 | 136 void failures_deinit(void); |
137 | |
138 #endif |