X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/f49d9ed0b8cbf4b87e9c8d9007767ba48f440332..4e9ed49f8f12eb331b29bd5b6dc3693c520fddc2:/src/src/globals.h diff --git a/src/src/globals.h b/src/src/globals.h index 5bd936452..c40ae4beb 100644 --- a/src/src/globals.h +++ b/src/src/globals.h @@ -2,8 +2,8 @@ * 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. */ /* Almost all the global variables are defined together in this one header, so @@ -77,10 +77,6 @@ extern int sqlite_lock_timeout; /* Internal lock waiting timeout */ extern BOOL move_frozen_messages; /* Get them out of the normal directory */ #endif -#ifdef ALLOW_INSECURE_TAINTED_DATA -extern BOOL allow_insecure_tainted_data; -#endif - /* These variables are outside the #ifdef because it keeps the code less cluttered in several places (e.g. during logging) if we can always refer to them. Also, the tls_ variables are now always visible. */ @@ -112,12 +108,16 @@ typedef struct { OCSP_VFIED /* verified */ } ocsp; /* Stapled OCSP status */ #ifndef DISABLE_TLS_RESUME + hctx resume_hctx; /* session lookup key accumulation */ + const uschar * resume_index; /* session lookup key */ + unsigned resumption; /* Session resumption */ BOOL host_resumable:1; BOOL ticket_received:1; #endif BOOL verify_override:1; /* certificate_verified only due to tls_try_verify_hosts */ BOOL ext_master_secret:1; /* extended-master-secret was used */ + BOOL channelbind_exporter:1; /* channelbinding is EXPORTER not UNIQUE */ } tls_support; extern tls_support tls_in; extern tls_support tls_out; @@ -200,6 +200,7 @@ extern struct global_flags { BOOL continue_more :1; /* Flag more addresses waiting */ BOOL daemon_listen :1; /* True if listening required */ + BOOL daemon_scion :1; /* Ancestor proc is daemon, and not re-exec'd */ BOOL debug_daemon :1; /* Debug the daemon process only */ BOOL deliver_firsttime :1; /* True for first delivery attempt */ BOOL deliver_force :1; /* TRUE if delivery was forced */ @@ -368,6 +369,7 @@ extern uschar *authenticated_fail_id; /* ID that failed authentication */ extern uschar *authenticated_id; /* ID that was authenticated */ extern uschar *authenticated_sender; /* From AUTH on MAIL */ extern BOOL authentication_failed; /* TRUE if AUTH was tried and failed */ +extern uschar *authenticator_name; /* for debug and error messages */ extern uschar *auth_advertise_hosts; /* Only advertise to these */ extern auth_info auths_available[]; /* Vector of available auth mechanisms */ extern auth_instance *auths; /* Chain of instantiated auths */ @@ -424,6 +426,9 @@ extern chunking_state_t chunking_state; extern uschar *client_authenticator; /* Authenticator name used for smtp delivery */ extern uschar *client_authenticated_id; /* "login" name used for SMTP AUTH */ extern uschar *client_authenticated_sender; /* AUTH option to SMTP MAIL FROM (not yet used) */ +#ifndef DISABLE_CLIENT_CMD_LOG +extern gstring *client_cmd_log; /* debug log of client cmds & responses */ +#endif extern int clmacro_count; /* Number of command line macros */ extern uschar *clmacros[]; /* Copy of them, for re-exec */ extern BOOL commandline_checks_require_admin; /* belt and braces for insecure setups */ @@ -487,7 +492,11 @@ extern FILE *debug_file; /* Where to write debugging info */ extern int debug_notall[]; /* Debug options excluded from +all */ extern bit_table debug_options[]; /* Table of debug options */ extern int debug_options_count; /* Size of table */ +extern unsigned debug_pretrigger_bsize; +extern uschar *debug_pretrigger_buf; /* circular buffer for precapture */ extern BOOL debug_store; /* Do extra checks on store_reset */ +extern uschar debuglog_name[LOG_NAME_SIZE]; /* ACL-init debug */ + extern int delay_warning[]; /* Times between warnings */ extern uschar *delay_warning_condition; /* Condition string for warnings */ extern BOOL delivery_date_remove; /* Remove delivery-date headers */ @@ -575,6 +584,10 @@ extern int domainlist_count; /* Number defined */ /* This option is now a no-opt, retained for compatibility */ extern BOOL drop_cr; /* For broken local MUAs */ +extern const uschar *driver_srcfile; /* For debug & errors */ +extern int driver_srcline; /* For debug & errors */ + +extern unsigned int dtrigger_selector; /* when to start debug */ extern uschar *dsn_from; /* From: string for DSNs */ @@ -668,6 +681,7 @@ extern uschar *keep_environment; /* Whitelist for environment variables */ extern int keep_malformed; /* Time to keep malformed messages */ extern uschar *eldap_dn; /* Where LDAP DNs are left */ +extern const uschar *letter_digit_hyphen_dot; /* Legitimate DNS host name chars */ #ifdef EXPERIMENTAL_ESMTP_LIMITS extern uschar *limits_advertise_hosts; /* for banner/EHLO pipelining */ #endif @@ -781,9 +795,12 @@ extern uid_t originator_uid; /* Uid of ditto */ extern uschar *override_local_interfaces; /* Value of -oX argument */ extern uschar *override_pid_file_path; /* Value of -oP argument */ +extern BOOL panic_coredump; /* SEGV rather than exit, on LOG_PANIC_DIE */ extern pcre2_general_context * pcre_gen_ctx; /* pcre memory management */ -extern pcre2_compile_context * pcre_cmp_ctx; -extern pcre2_match_context * pcre_mtc_ctx; +extern pcre2_compile_context * pcre_gen_cmp_ctx; +extern pcre2_match_context * pcre_gen_mtc_ctx; +extern pcre2_general_context * pcre_mlc_ctx; +extern pcre2_compile_context * pcre_mlc_cmp_ctx; extern uschar *percent_hack_domains; /* Local domains for which '% operates */ extern uschar *pid_file_path; /* For writing daemon pids */ @@ -884,6 +901,7 @@ extern const pcre2_code *regex_SIZE; /* For recognizing SIZE settings */ #ifndef DISABLE_PIPE_CONNECT extern const pcre2_code *regex_EARLY_PIPE; /* For recognizing PIPE_CONNCT */ #endif +extern int regex_cachesize; /* number of entries */ extern const pcre2_code *regex_ismsgid; /* Compiled r.e. for message ID */ extern const pcre2_code *regex_smtp_code; /* For recognizing SMTP codes */ extern const uschar *regex_vars[]; /* $regexN variables */ @@ -1025,21 +1043,6 @@ extern BOOL split_spool_directory; /* TRUE to use multiple subdirs */ extern FILE *spool_data_file; /* handle for -D file */ extern uschar *spool_directory; /* Name of spool directory */ extern BOOL spool_wireformat; /* can write wireformat -D files */ -#ifdef EXPERIMENTAL_SRS_ALT -extern uschar *srs_config; /* SRS config secret:max age:hash length:use timestamp:use hash */ -extern uschar *srs_db_address; /* SRS db address */ -extern uschar *srs_db_key; /* SRS db key */ -extern int srs_hashlength; /* SRS hash length */ -extern int srs_hashmin; /* SRS minimum hash length */ -extern int srs_maxage; /* SRS max age */ -extern uschar *srs_orig_sender; /* SRS original sender */ -extern uschar *srs_orig_recipient; /* SRS original recipient */ -extern uschar *srs_recipient; /* SRS recipient */ -extern uschar *srs_secrets; /* SRS secrets list */ -extern uschar *srs_status; /* SRS staus */ -extern BOOL srs_usehash; /* SRS use hash flag */ -extern BOOL srs_usetimestamp; /* SRS use timestamp flag */ -#endif #ifdef SUPPORT_SRS extern uschar *srs_recipient; /* SRS recipient */ #endif