X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/2ead369f8435918f3f15408b9394e580bcaf0910..24cda181fb88542cf38db2beae5d0ddb37f59c5c:/src/src/macros.h diff --git a/src/src/macros.h b/src/src/macros.h index 659a70f48..c55276332 100644 --- a/src/src/macros.h +++ b/src/src/macros.h @@ -2,9 +2,10 @@ * Exim - an Internet mail transport agent * *************************************************/ +/* Copyright (c) The Exim Maintainers 2020 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ -/* Copyright (c) The Exim Maintainers 2020 - 2021 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ /* These two macros make it possible to obtain the result of macro-expanding @@ -105,6 +106,7 @@ don't make the file descriptors two-way. */ /* Debugging control */ +#define LOG_NAME_SIZE 256 #define DEBUG(x) if (debug_selector & (x)) #define HDEBUG(x) if (host_checking || debug_selector & (x)) @@ -815,14 +817,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}() */ @@ -866,19 +870,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 */ @@ -1110,7 +1115,39 @@ should not be one active. */ #define NOTIFIER_SOCKET_NAME "exim_daemon_notify" -#define NOTIFY_MSG_QRUN 1 /* Notify message types */ -#define NOTIFY_QUEUE_SIZE_REQ 2 +/* Notify message types */ +#define NOTIFY_MSG_QRUN 1 /* 2stage qrun fast-ramp trigger */ +#define NOTIFY_QUEUE_SIZE_REQ 2 /* obtain current queue count */ +#define NOTIFY_REGEX 3 /* an RE for caching */ + +/* Flags for match_check_string() */ +typedef unsigned mcs_flags; +#define MCS_NOFLAGS 0 +#define MCS_PARTIAL BIT(0) /* permit partial- search types */ +#define MCS_CASELESS BIT(1) /* caseless matching where possible */ +#define MCS_AT_SPECIAL BIT(2) /* recognize @, @[], etc. */ +#define MCS_CACHEABLE BIT(3) /* no dynamic expansions used for pattern */ + +/* Flags for open() */ +#ifdef O_CLOEXEC +# define EXIM_CLOEXEC O_CLOEXEC +#else +# define EXIM_CLOEXEC 0 +#endif +#ifdef O_NOFOLLOW +# define EXIM_NOFOLLOW O_NOFOLLOW +#else +# define EXIM_NOFOLLOW 0 +#endif + +/* A big number for (effectively) unlimited envelope addresses */ +#define UNLIMITED_ADDRS 999999 + +/* Flags for queue_list() */ +#define QL_BASIC 0 +#define QL_UNDELIVERED_ONLY 1 +#define QL_PLUS_GENERATED 2 +#define QL_MSGID_ONLY 3 +#define QL_UNSORTED 8 /* End of macros.h */