*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
+/* Copyright (c) The Exim Maintainers 2020 */
/* See the file NOTICE for conditions of use and distribution. */
verifying. This has to be explicit because it is referenced in more than one
source module. */
-#define ADDRESS_EXPANSIONS_COUNT 18
+#define ADDRESS_EXPANSIONS_COUNT 19
/* The maximum permitted number of command-line (-D) macro definitions. We
need a limit only to make it easier to generate argument vectors for re-exec
/* The size of the buffer holding the processing information string. */
-#define PROCESS_INFO_SIZE 256
+#define PROCESS_INFO_SIZE 384
/* The size of buffer to get for constructing log entries. Make it big
enough to hold all the headers from a normal kind of message. */
/* The size of the circular buffer that remembers recent SMTP commands */
#define SMTP_HBUFF_SIZE 20
+#define SMTP_HBUFF_PREV(n) ((n) ? (n)-1 : SMTP_HBUFF_SIZE-1)
/* The initial size of a big buffer for use in various places. It gets put
into big_buffer_size and in some circumstances increased. It should be at least
as long as the maximum path length. */
-#if defined PATH_MAX && PATH_MAX > 16384
+#ifdef AUTH_HEIMDAL_GSSAPI
+ /* RFC 4121 section 5.2, SHOULD support 64K input buffers */
+# define __BIG_BUFFER_SIZE 65536
+#else
+# define __BIG_BUFFER_SIZE 16384
+#endif
+
+#if defined PATH_MAX && PATH_MAX > __BIG_BUFFER_SIZE
# define BIG_BUFFER_SIZE PATH_MAX
-#elif defined MAXPATHLEN && MAXPATHLEN > 16384
+#elif defined MAXPATHLEN && MAXPATHLEN > __BIG_BUFFER_SIZE
# define BIG_BUFFER_SIZE MAXPATHLEN
#else
-# define BIG_BUFFER_SIZE 16384
+# define BIG_BUFFER_SIZE __BIG_BUFFER_SIZE
#endif
/* header size of pipe content
Li_outgoing_port,
Li_pid,
Li_pipelining,
+ Li_protocol_detail,
Li_proxy,
Li_queue_time,
Li_queue_time_overall,
#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 */
#define vopt_callout_recippmaster 0x0100 /* use postmaster to verify recip */
#define vopt_callout_hold 0x0200 /* lazy close connection */
#define vopt_success_on_redirect 0x0400
+#define vopt_quota 0x0800 /* quota check, to local/appendfile */
/* Values for fields in callout cache records */
#define ACL_BIT_MIME BIT(ACL_WHERE_MIME)
#define ACL_BIT_DKIM BIT(ACL_WHERE_DKIM)
#define ACL_BIT_DATA BIT(ACL_WHERE_DATA)
-#ifndef DISABLE_PRDR
+#ifdef DISABLE_PRDR
+# define ACL_BIT_PRDR 0
+#else
# define ACL_BIT_PRDR BIT(ACL_WHERE_PRDR)
#endif
#define ACL_BIT_NOTSMTP BIT(ACL_WHERE_NOTSMTP)
#define ACL_BIT_DELIVERY BIT(ACL_WHERE_DELIVERY)
#define ACL_BIT_UNKNOWN BIT(ACL_WHERE_UNKNOWN)
+#define ACL_BITS_HAVEDATA (ACL_BIT_MIME | ACL_BIT_DKIM | ACL_BIT_DATA \
+ | ACL_BIT_PRDR \
+ | ACL_BIT_NOTSMTP | ACL_BIT_QUIT | ACL_BIT_NOTQUIT)
+
/* Situations for spool_write_header() */
#define SVFMT_TAINT_NOCHK BIT(2)
+#define NOTIFIER_SOCKET_NAME "exim_daemon_notify"
+#define NOTIFY_MSG_QRUN 1 /* Notify message types */
+#define NOTIFY_QUEUE_SIZE_REQ 2
+
/* End of macros.h */