#define SPOOL_NAME_LENGTH (MESSAGE_ID_LENGTH+2)
/* The maximum number of message ids to store in a waiting database
-record. */
+record, and the max number of continuation records allowed. */
#define WAIT_NAME_MAX 50
-
-/* Wait this long before determining that a Proxy Protocol configured
-host isn't speaking the protocol, and so is disallowed. Can be moved to
-runtime configuration if per site settings become needed. */
-#ifdef SUPPORT_PROXY
-#define PROXY_NEGOTIATION_TIMEOUT_SEC 3
-#define PROXY_NEGOTIATION_TIMEOUT_USEC 0
-#endif
+#define WAIT_CONT_MAX 1000
/* Fixed option values for all PCRE functions */
#define CANCELLED 13 /* Authentication cancelled */
#define FAIL_SEND 14 /* send() failed in authenticator */
#define FAIL_DROP 15 /* Fail and drop connection (used in ACL) */
+#define DANE 16 /* Deferred for domain mismatch (used in transport) */
/* Returns from the deliver_message() function */
#define ERRNO_AUTHPROB (-48) /* Authenticator "other" failure */
#define ERRNO_UTF8_FWD (-49) /* target not supporting SMTPUTF8 */
#define ERRNO_HOST_IS_LOCAL (-50) /* Transport refuses to talk to localhost */
+#define ERRNO_TAINT (-51) /* Transport refuses to talk use tainted filename */
/* These must be last, so all retry deferments can easily be identified */
-#define ERRNO_RETRY_BASE (-51) /* Base to test against */
-#define ERRNO_RRETRY (-51) /* Not time for routing */
+#define ERRNO_RETRY_BASE (-52) /* Base to test against */
+#define ERRNO_RRETRY (-52) /* 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 */
-#define ERRNO_QUEUE_DOMAIN (-55) /* Domain in queue_domains */
-#define ERRNO_TRETRY (-56) /* Transport concurrency limit */
-#define ERRNO_EVENT (-57) /* Event processing request alternate response */
+#define ERRNO_WARN_BASE (-53) /* Base to test against */
+#define ERRNO_LRETRY (-53) /* Not time for local delivery */
+#define ERRNO_HRETRY (-54) /* Not time for any remote host */
+#define ERRNO_LOCAL_ONLY (-55) /* Local-only delivery */
+#define ERRNO_QUEUE_DOMAIN (-56) /* Domain in queue_domains */
+#define ERRNO_TRETRY (-57) /* Transport concurrency limit */
+#define ERRNO_EVENT (-58) /* Event processing request alternate response */
/* Options for transport_write_message */
-#define topt_add_return_path 0x001
-#define topt_add_delivery_date 0x002
-#define topt_add_envelope_to 0x004
-#define topt_use_crlf 0x008 /* Terminate lines with CRLF */
-#define topt_end_dot 0x010 /* Send terminating dot line */
-#define topt_no_headers 0x020 /* Omit headers */
-#define topt_no_body 0x040 /* Omit body */
-#define topt_escape_headers 0x080 /* Apply escape check to headers */
-#define topt_use_bdat 0x100 /* prepend chunks with RFC3030 BDAT header */
-#define topt_output_string 0x200 /* create string rather than write to fd */
-#define topt_continuation 0x400 /* do not reset buffer */
-#define topt_not_socket 0x800 /* cannot do socket-only syscalls */
+#define topt_add_return_path 0x0001
+#define topt_add_delivery_date 0x0002
+#define topt_add_envelope_to 0x0004
+#define topt_escape_headers 0x0008 /* Apply escape check to headers */
+#define topt_use_crlf 0x0010 /* Terminate lines with CRLF */
+#define topt_no_headers 0x0020 /* Omit headers */
+#define topt_no_body 0x0040 /* Omit body */
+#define topt_end_dot 0x0080 /* Send terminating dot line */
+#define topt_no_flush 0x0100 /* more data expected after message (eg QUIT) */
+#define topt_use_bdat 0x0200 /* prepend chunks with RFC3030 BDAT header */
+#define topt_output_string 0x0400 /* create string rather than write to fd */
+#define topt_continuation 0x0800 /* do not reset buffer */
+#define topt_not_socket 0x1000 /* cannot do socket-only syscalls */
/* Options for smtp_write_command */
-enum {
+enum {
SCMD_FLUSH = 0, /* write to kernel */
SCMD_MORE, /* write to kernel, but likely more soon */
SCMD_BUFFER /* stash in application cmd output buffer */
#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
+#define EARLY_PIPE_FEATURE_NAME "PIPE_CONNECT"
+#define EARLY_PIPE_FEATURE_LEN 12
/* Flags for auth_client_item() */