X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/8768d5483a5894400ae1f70cda1beb44ed9b087c..de6f74f297d040a34746bc8e1829ad4b867441c9:/src/src/macros.h diff --git a/src/src/macros.h b/src/src/macros.h index fd53de883..0f93543ce 100644 --- a/src/src/macros.h +++ b/src/src/macros.h @@ -362,6 +362,7 @@ masks, alternating between sequential bit index and corresponding mask. */ /* Options bits for debugging. DEBUG_BIT() declares both a bit index and the corresponding mask. Di_all is a special value recognized by decode_bits(). +These must match the debug_options table in globals.c . Exim's code assumes in a number of places that the debug_selector is one word, and this is exposed in the local_scan ABI. The D_v and D_local_scan bit @@ -391,6 +392,7 @@ enum { DEBUG_BIT(load), DEBUG_BIT(lookup), DEBUG_BIT(memory), + DEBUG_BIT(noutf8), DEBUG_BIT(pid), DEBUG_BIT(process_info), DEBUG_BIT(queue_run), @@ -412,6 +414,7 @@ enum { #define D_any (D_all & \ ~(D_v | \ + D_noutf8 | \ D_pid | \ D_timestamp) ) @@ -422,6 +425,7 @@ enum { D_load | \ D_local_scan | \ D_memory | \ + D_noutf8 | \ D_pid | \ D_timestamp | \ D_resolver)) @@ -559,6 +563,8 @@ table exim_errstrings[] in log.c */ #define ERRNO_RETRY_BASE (-51) /* Base to test against */ #define ERRNO_RRETRY (-51) /* Not time for routing */ + +#define ERRNO_WARN_BASE (-52) /* Base to test against */ #define ERRNO_LRETRY (-52) /* Not time for local delivery */ #define ERRNO_HRETRY (-53) /* Not time for any remote host */ #define ERRNO_LOCAL_ONLY (-54) /* Local-only delivery */ @@ -1010,15 +1016,16 @@ enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE }; /* Codes for ESMTP facilities offered by peer */ -#define OPTION_TLS BIT(0) -#define OPTION_IGNQ BIT(1) -#define OPTION_PRDR BIT(2) -#define OPTION_UTF8 BIT(3) -#define OPTION_DSN BIT(4) -#define OPTION_PIPE BIT(5) -#define OPTION_SIZE BIT(6) -#define OPTION_CHUNKING BIT(7) -#define OPTION_REQUIRETLS BIT(8) +#define OPTION_TLS BIT(0) +#define OPTION_IGNQ BIT(1) +#define OPTION_PRDR BIT(2) +#define OPTION_UTF8 BIT(3) +#define OPTION_DSN BIT(4) +#define OPTION_PIPE BIT(5) +#define OPTION_SIZE BIT(6) +#define OPTION_CHUNKING BIT(7) +#define OPTION_REQUIRETLS BIT(8) +#define OPTION_EARLY_PIPE BIT(9) /* Codes for tls_requiretls requests (usually by sender) */ @@ -1043,4 +1050,26 @@ enum { FILTER_UNSET, FILTER_FORWARD, FILTER_EXIM, FILTER_SIEVE }; #define TLS_SHUTDOWN_WAIT 2 +#ifdef COMPILE_UTILITY +# define ALARM(seconds) alarm(seconds); +# define ALARM_CLR(seconds) alarm(seconds); +#else +/* For debugging of odd alarm-signal problems, stash caller info while the +alarm is active. Clear it down on cancelling the alarm so we can tell there +should not be one active. */ + +# define ALARM(seconds) \ + debug_selector & D_any \ + ? (sigalarm_setter = CUS __FUNCTION__, alarm(seconds)) : alarm(seconds); +# define ALARM_CLR(seconds) \ + debug_selector & D_any \ + ? (sigalarm_setter = NULL, alarm(seconds)) : alarm(seconds); +#endif + +#define AUTHS_REGEX US"\\n250[\\s\\-]AUTH\\s+([\\-\\w \\t]+)(?:\\n|$)" + +#define EARLY_PIPE_FEATURE_NAME "X_PIPE_CONNECT" +#define EARLY_PIPE_FEATURE_LEN 14 + + /* End of macros.h */