Copyright updates:
[exim.git] / src / src / macros.h
index 9f3a7b06af7cc42e91f9c5b90b61a69f24f65231..2658b9ab7d91f1a106ba6e68565ef80810cf81d3 100644 (file)
@@ -2,7 +2,7 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) The Exim Maintainers 2020 - 2022 */
+/* Copyright (c) The Exim Maintainers 2020 - 2023 */
 /* Copyright (c) University of Cambridge 1995 - 2018 */
 /* See the file NOTICE for conditions of use and distribution. */
 /* SPDX-License-Identifier: GPL-2.0-or-later */
@@ -184,7 +184,8 @@ written on the spool, it gets read into big_buffer. */
 /* The length of the base names of spool files, which consist of an internal
 message id with a trailing "-H" or "-D" added. */
 
-#define SPOOL_NAME_LENGTH (MESSAGE_ID_LENGTH+2)
+#define SPOOL_NAME_LENGTH_OLD  (MESSAGE_ID_LENGTH_OLD + 2)
+#define SPOOL_NAME_LENGTH      (MESSAGE_ID_LENGTH     + 2)
 
 /* The maximum number of message ids to store in a waiting database
 record, and the max number of continuation records allowed. */
@@ -199,6 +200,8 @@ record, and the max number of continuation records allowed. */
 
 /* Macros for trivial functions */
 
+#define xstr(x)                #x
+#define str(x)         xstr(x) /* stringize, expanding macros in arg first */
 #define mac_ismsgid(s) (regex_match(regex_ismsgid, (s), -1, NULL))
 
 
@@ -463,6 +466,7 @@ enum logbit {
   Li_8bitmime = BITWORDSIZE,
   Li_acl_warn_skipped,
   Li_arguments,
+  Li_connection_id,
   Li_deliver_time,
   Li_delivery_size,
   Li_dkim,
@@ -817,14 +821,16 @@ local_scan.h */
 #define DEBUG_FROM_CONFIG       0x0001
 
 /* SMTP command identifiers for the smtp_connection_had field that records the
-most recent SMTP commands. Must be kept in step with the list of names in
-smtp_in.c that is used for creating the smtp_no_mail logging action. SCH_NONE
-is "empty". */
+most recent SMTP commands. SCH_NONE is "empty". */
 
 enum { SCH_NONE, SCH_AUTH, SCH_DATA, SCH_BDAT,
        SCH_EHLO, SCH_ETRN, SCH_EXPN, SCH_HELO,
        SCH_HELP, SCH_MAIL, SCH_NOOP, SCH_QUIT, SCH_RCPT, SCH_RSET, SCH_STARTTLS,
-       SCH_VRFY };
+       SCH_VRFY,
+#ifdef EXPERIMENTAL_XCLIENT
+       SCH_XCLIENT,
+#endif
+       };
 
 /* Returns from host_find_by{name,dns}() */
 
@@ -868,19 +874,20 @@ enum {
 
 /* Options for transport_write_message */
 
-#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 */
+#define topt_add_return_path    BIT(0)
+#define topt_add_delivery_date  BIT(1)
+#define topt_add_envelope_to    BIT(2)
+#define topt_escape_headers     BIT(3) /* Apply escape check to headers */
+#define topt_truncate_headers   BIT(4) /* Truncate header lines at 998 chars */
+#define topt_use_crlf           BIT(5) /* Terminate lines with CRLF */
+#define topt_no_headers         BIT(6) /* Omit headers */
+#define topt_no_body            BIT(7) /* Omit body */
+#define topt_end_dot            BIT(8) /* Send terminating dot line */
+#define topt_no_flush          BIT(9)  /* more data expected after message (eg QUIT) */
+#define topt_use_bdat          BIT(10) /* prepend chunks with RFC3030 BDAT header */
+#define topt_output_string     BIT(11) /* create string rather than write to fd */
+#define topt_continuation      BIT(12) /* do not reset buffer */
+#define topt_not_socket                BIT(13) /* cannot do socket-only syscalls */
 
 /* Options for smtp_write_command */
 
@@ -1147,4 +1154,9 @@ typedef unsigned mcs_flags;
 #define QL_MSGID_ONLY          3
 #define QL_UNSORTED            8
 
+/* Flags for transport_set_up_command() */
+#define TSUC_EXPAND_ARGS       BIT(0)
+#define TSUC_ALLOW_TAINTED_ARGS        BIT(1)
+#define TSUC_ALLOW_RECIPIENTS  BIT(2)
+
 /* End of macros.h */