X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/df0dc54a7666ef64b8a6681ab7b50a4836905203..c90c2288e88f66ae1d8af198cfa56c401e573ce4:/src/src/globals.c diff --git a/src/src/globals.c b/src/src/globals.c index 539bae00e..e23188b34 100644 --- a/src/src/globals.c +++ b/src/src/globals.c @@ -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 */ @@ -467,6 +467,9 @@ uschar *acl_smtp_quit = NULL; uschar *acl_smtp_rcpt = NULL; uschar *acl_smtp_starttls = NULL; uschar *acl_smtp_vrfy = NULL; +#ifdef EXPERIMENTAL_WELLKNOWN +uschar *acl_smtp_wellknown = NULL; +#endif tree_node *acl_var_c = NULL; tree_node *acl_var_m = NULL; @@ -474,56 +477,49 @@ uschar *acl_verify_message = NULL; string_item *acl_warn_logged = NULL; /* Names of SMTP places for use in ACL error messages, and corresponding SMTP -error codes - keep in step with definitions of ACL_WHERE_xxxx in macros.h. */ - -uschar *acl_wherenames[] = { US"RCPT", - US"MAIL", - US"PREDATA", - US"MIME", - US"DKIM", - US"DATA", +error codes (only those used) */ + +uschar *acl_wherenames[] = { [ACL_WHERE_RCPT] = US"RCPT", + [ACL_WHERE_MAIL] = US"MAIL", + [ACL_WHERE_PREDATA] = US"PREDATA", + [ACL_WHERE_MIME] = US"MIME", + [ACL_WHERE_DKIM] = US"DKIM", + [ACL_WHERE_DATA] = US"DATA", #ifndef DISABLE_PRDR - US"PRDR", -#endif - US"non-SMTP", - US"AUTH", - US"connection", - US"ETRN", - US"EXPN", - US"EHLO or HELO", - US"MAILAUTH", - US"non-SMTP-start", - US"NOTQUIT", - US"QUIT", - US"STARTTLS", - US"VRFY", - US"delivery", - US"unknown" + [ACL_WHERE_PRDR] = US"PRDR", +#endif + [ACL_WHERE_NOTSMTP] = US"non-SMTP", + [ACL_WHERE_AUTH] = US"AUTH", + [ACL_WHERE_CONNECT] = US"connection", + [ACL_WHERE_ETRN] = US"ETRN", + [ACL_WHERE_EXPN] = US"EXPN", + [ACL_WHERE_HELO] = US"EHLO or HELO", + [ACL_WHERE_MAILAUTH] = US"MAILAUTH", + [ACL_WHERE_NOTSMTP_START] = US"non-SMTP-start", + [ACL_WHERE_NOTQUIT] = US"NOTQUIT", + [ACL_WHERE_QUIT] = US"QUIT", + [ACL_WHERE_STARTTLS] = US"STARTTLS", + [ACL_WHERE_VRFY] = US"VRFY", + [ACL_WHERE_DELIVERY] = US"delivery", + [ACL_WHERE_UNKNOWN] = US"unknown" }; -uschar *acl_wherecodes[] = { US"550", /* RCPT */ - US"550", /* MAIL */ - US"550", /* PREDATA */ - US"550", /* MIME */ - US"550", /* DKIM */ - US"550", /* DATA */ +uschar *acl_wherecodes[] = { [ACL_WHERE_RCPT] = US"550", + [ACL_WHERE_MAIL] = US"550", + [ACL_WHERE_PREDATA] = US"550", + [ACL_WHERE_MIME] = US"550", + [ACL_WHERE_DKIM] = US"550", + [ACL_WHERE_DATA] = US"550", #ifndef DISABLE_PRDR - US"550", /* RCPT PRDR */ -#endif - US"0", /* not SMTP; not relevant */ - US"503", /* AUTH */ - US"550", /* connect */ - US"458", /* ETRN */ - US"550", /* EXPN */ - US"550", /* HELO/EHLO */ - US"0", /* MAILAUTH; not relevant */ - US"0", /* not SMTP; not relevant */ - US"0", /* NOTQUIT; not relevant */ - US"0", /* QUIT; not relevant */ - US"550", /* STARTTLS */ - US"252", /* VRFY */ - US"0", /* delivery; not relevant */ - US"0" /* unknown; not relevant */ + [ACL_WHERE_PRDR] = US"550", +#endif + [ACL_WHERE_AUTH] = US"503", + [ACL_WHERE_CONNECT] = US"550", + [ACL_WHERE_ETRN] = US"458", + [ACL_WHERE_EXPN] = US"550", + [ACL_WHERE_HELO] = US"550", + [ACL_WHERE_STARTTLS] = US"550", + [ACL_WHERE_VRFY] = US"252", }; uschar *add_environment = NULL; @@ -610,8 +606,8 @@ address_item address_defaults = { } }; -uschar *address_file = NULL; -uschar *address_pipe = NULL; +const uschar *address_file = NULL; +const uschar *address_pipe = NULL; tree_node *addresslist_anchor = NULL; int addresslist_count = 0; gid_t *admin_groups = NULL; @@ -683,7 +679,7 @@ int body_linecount = 0; int body_zerocount = 0; uschar *bounce_message_file = NULL; uschar *bounce_message_text = NULL; -uschar *bounce_recipient = NULL; +const uschar *bounce_recipient = NULL; int bounce_return_linesize_limit = 998; int bounce_return_size_limit = 100*1024; uschar *bounce_sender_authentication = NULL; @@ -706,7 +702,7 @@ unsigned chunking_data_left = 0; chunking_state_t chunking_state= CHUNKING_NOT_OFFERED; const pcre2_code *regex_CHUNKING = NULL; -#ifdef EXPERIMENTAL_ESMTP_LIMITS +#ifndef DISABLE_ESMTP_LIMITS const pcre2_code *regex_LIMITS = NULL; #endif @@ -726,7 +722,7 @@ gid_t config_gid = CONFIGURE_GROUP; #else gid_t config_gid = 0; #endif -uschar *config_main_filelist = US CONFIGURE_FILE +const uschar * config_main_filelist = US CONFIGURE_FILE "\0<-----------Space to patch configure_filename->"; uschar *config_main_filename = NULL; uschar *config_main_directory = NULL; @@ -737,6 +733,7 @@ uid_t config_uid = CONFIGURE_OWNER; uid_t config_uid = 0; #endif +uint64_t connection_id = 0L; int connection_max_messages= -1; uschar *continue_proxy_cipher = NULL; BOOL continue_proxy_dane = FALSE; @@ -745,7 +742,7 @@ uschar *continue_hostname = NULL; uschar *continue_host_address = NULL; int continue_sequence = 1; uschar *continue_transport = NULL; -#ifdef EXPERIMENTAL_ESMTP_LIMITS +#ifndef DISABLE_ESMTP_LIMITS unsigned continue_limit_mail = 0; unsigned continue_limit_rcpt = 0; unsigned continue_limit_rcptdom= 0; @@ -841,14 +838,14 @@ const uschar *deliver_host_address = NULL; int deliver_host_port = 0; uschar *deliver_in_buffer = NULL; ino_t deliver_inode = 0; -uschar *deliver_localpart = NULL; +const uschar *deliver_localpart= NULL; uschar *deliver_localpart_data = NULL; -uschar *deliver_localpart_orig = NULL; -uschar *deliver_localpart_parent = NULL; -uschar *deliver_localpart_prefix = NULL; -uschar *deliver_localpart_prefix_v = NULL; -uschar *deliver_localpart_suffix = NULL; -uschar *deliver_localpart_suffix_v = NULL; +const uschar *deliver_localpart_orig = NULL; +const uschar *deliver_localpart_parent = NULL; +const uschar *deliver_localpart_prefix = NULL; +const uschar *deliver_localpart_prefix_v = NULL; +const uschar *deliver_localpart_suffix = NULL; +const uschar *deliver_localpart_suffix_v = NULL; uschar *deliver_out_buffer = NULL; int deliver_queue_load_max = -1; address_item *deliver_recipients = NULL; @@ -863,6 +860,7 @@ void *dkim_signatures = NULL; uschar *dkim_signers = NULL; uschar *dkim_signing_domain = NULL; uschar *dkim_signing_selector = NULL; +gstring *dkim_signing_record = NULL; uschar *dkim_verify_hashes = US"sha256:sha512"; uschar *dkim_verify_keytypes = US"ed25519:rsa"; uschar *dkim_verify_min_keysizes = US"rsa=1024 ed25519=250"; @@ -938,8 +936,8 @@ uschar *fake_response_text = US"Your message has been rejected but is " int filter_n[FILTER_VARIABLE_COUNT]; int filter_sn[FILTER_VARIABLE_COUNT]; int filter_test = FTEST_NONE; -uschar *filter_test_sfile = NULL; -uschar *filter_test_ufile = NULL; +const uschar * filter_test_sfile = NULL; +const uschar * filter_test_ufile = NULL; uschar *filter_thisaddress = NULL; int finduser_retries = 0; uid_t fixed_never_users[] = { FIXED_NEVER_USERS }; @@ -995,11 +993,21 @@ uschar *host_lookup_msg = US""; int host_number = 0; uschar *host_number_string = NULL; uschar *host_reject_connection = NULL; -tree_node *hostlist_anchor = NULL; -int hostlist_count = 0; +uschar *hosts_connection_nolog = NULL; +#ifdef SUPPORT_PROXY +uschar *hosts_proxy = NULL; +#endif uschar *hosts_treat_as_local = NULL; uschar *hosts_require_helo = US"*"; -uschar *hosts_connection_nolog = NULL; +#ifdef EXPERIMENTAL_WELLKNOWN +uschar *hosts_wellknown = NULL; +#endif +#ifdef EXPERIMENTAL_XCLIENT +uschar *hosts_xclient = NULL; +#endif +tree_node *hostlist_anchor = NULL; +int hostlist_count = 0; + int ignore_bounce_errors_after = 10*7*24*60*60; /* 10 weeks */ uschar *ignore_fromline_hosts = NULL; @@ -1020,7 +1028,7 @@ const uschar *letter_digit_hyphen_dot = US"abcdefghijklmnopqrstuvwxyz" ".-0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -#ifdef EXPERIMENTAL_ESMTP_LIMITS +#ifndef DISABLE_ESMTP_LIMITS uschar *limits_advertise_hosts = US"*"; #endif int load_average = -2; @@ -1082,6 +1090,7 @@ bit_table log_options[] = { /* must be in alphabetical order, BIT_TABLE(L, all), BIT_TABLE(L, all_parents), BIT_TABLE(L, arguments), + BIT_TABLE(L, connection_id), BIT_TABLE(L, connection_reject), BIT_TABLE(L, delay_delivery), BIT_TABLE(L, deliver_time), @@ -1176,7 +1185,7 @@ uschar *message_size_limit = US"50M"; int message_utf8_downconvert = 0; /* -1 ifneeded; 0 never; 1 always */ #endif uschar message_subdir[2] = { 0, 0 }; -uschar *message_reference = NULL; +const uschar *message_reference= NULL; /* MIME ACL expandables */ #ifdef WITH_CONTENT_SCAN @@ -1210,7 +1219,7 @@ uschar *originator_login = NULL; uschar *originator_name = NULL; uid_t originator_uid; uschar *override_local_interfaces = NULL; -uschar *override_pid_file_path = NULL; +const uschar *override_pid_file_path = NULL; BOOL panic_coredump = FALSE; pcre2_general_context * pcre_gen_ctx = NULL; @@ -1220,7 +1229,7 @@ pcre2_general_context * pcre_mlc_ctx = NULL; pcre2_compile_context * pcre_mlc_cmp_ctx = NULL; uschar *percent_hack_domains = NULL; -uschar *pid_file_path = US PID_FILE_PATH +const uschar *pid_file_path = US PID_FILE_PATH "\0<--------------Space to patch pid_file_path->"; #ifndef DISABLE_PIPE_CONNECT uschar *pipe_connect_advertise_hosts = US"*"; @@ -1232,8 +1241,7 @@ int process_info_len = 0; uschar *process_log_path = NULL; const uschar *process_purpose = US"fresh-exec"; -#if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) -uschar *hosts_proxy = NULL; +#if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) || defined(EXPERIMENTAL_XCLIENT) uschar *proxy_external_address = NULL; int proxy_external_port = 0; uschar *proxy_local_address = NULL; @@ -1268,8 +1276,8 @@ tree_node *ratelimiters_cmd = NULL; tree_node *ratelimiters_conn = NULL; tree_node *ratelimiters_mail = NULL; uschar *raw_active_hostname = NULL; -uschar *raw_sender = NULL; -uschar **raw_recipients = NULL; +const uschar *raw_sender = NULL; +const uschar **raw_recipients = NULL; int raw_recipients_count = 0; int rcpt_count = 0; @@ -1281,7 +1289,7 @@ int receive_linecount = 0; int receive_messagecount = 0; int receive_timeout = 0; int received_count = 0; -uschar *received_for = NULL; +const uschar *received_for = NULL; /* This is the default text for Received headers generated by Exim. The date will be automatically added on the end. */ @@ -1313,7 +1321,8 @@ uschar *recipient_verify_failure = NULL; int recipients_count = 0; recipient_item *recipients_list = NULL; int recipients_list_max = 0; -int recipients_max = 50000; +uschar *recipients_max = US"50000"; +int recipients_max_expanded= 0; const pcre2_code *regex_AUTH = NULL; const pcre2_code *regex_check_dns_names = NULL; const pcre2_code *regex_From = NULL; @@ -1340,7 +1349,7 @@ int retry_data_expire = 7*24*60*60; int retry_interval_max = 24*60*60; int retry_maximum_timeout = 0; /* set from retry config */ retry_config *retries = NULL; -uschar *return_path = NULL; +const uschar *return_path = NULL; int rewrite_existflags = 0; uschar *rfc1413_hosts = US"@[]"; int rfc1413_query_timeout = 0; @@ -1448,10 +1457,10 @@ int runrc = 0; uschar *search_error_message = NULL; uschar *self_hostname = NULL; -uschar *sender_address = NULL; +const uschar *sender_address = NULL; unsigned int sender_address_cache[(MAX_NAMED_LIST * 2)/32]; uschar *sender_address_data = NULL; -uschar *sender_address_unrewritten = NULL; +const uschar *sender_address_unrewritten = NULL; uschar *sender_data = NULL; unsigned int sender_domain_cache[(MAX_NAMED_LIST * 2)/32]; uschar *sender_fullhost = NULL; @@ -1477,7 +1486,7 @@ uschar *sending_ip_address = NULL; int sending_port = -1; SIGNAL_BOOL sigalrm_seen = FALSE; const uschar *sigalarm_setter = NULL; -uschar **sighup_argv = NULL; +const uschar **sighup_argv = NULL; int slow_lookup_log = 0; /* millisecs, zero disables */ int smtp_accept_count = 0; int smtp_accept_max = 20; @@ -1564,7 +1573,7 @@ int string_datestamp_type = -1; const uschar *submission_domain = NULL; const uschar *submission_name = NULL; int syslog_facility = LOG_MAIL; -uschar *syslog_processname = US"exim"; +const uschar *syslog_processname= US"exim"; uschar *system_filter = NULL; uschar *system_filter_directory_transport = NULL; @@ -1660,5 +1669,6 @@ int warning_count = 0; const uschar *warnmsg_delay = NULL; const uschar *warnmsg_recipients = NULL; - /* End of globals.c */ +/* vi: aw ai sw=2 +*/