X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fglobals.c;h=5ce04a6ed16e40df8eaf1263b2ad67d156b681be;hb=01603eec64;hp=d834373b5cc7dd5e8c4ed8059462357b4b2ccbb3;hpb=8768d5483a5894400ae1f70cda1beb44ed9b087c;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/globals.c b/src/src/globals.c index d834373b5..5ce04a6ed 100644 --- a/src/src/globals.c +++ b/src/src/globals.c @@ -102,38 +102,12 @@ them. Also, the tls_ variables are now always visible. Note that these are only used for smtp connections, not for service-daemon access. */ tls_support tls_in = { - .active = {.sock = -1}, - .bits = 0, - .certificate_verified = FALSE, -#ifdef SUPPORT_DANE - .dane_verified = FALSE, - .tlsa_usage = 0, -#endif - .cipher = NULL, - .on_connect = FALSE, - .on_connect_ports = NULL, - .ourcert = NULL, - .peercert = NULL, - .peerdn = NULL, - .sni = NULL, - .ocsp = OCSP_NOT_REQ + .active = {.sock = -1} + /* all other elements zero */ }; tls_support tls_out = { .active = {.sock = -1}, - .bits = 0, - .certificate_verified = FALSE, -#ifdef SUPPORT_DANE - .dane_verified = FALSE, - .tlsa_usage = 0, -#endif - .cipher = NULL, - .on_connect = FALSE, - .on_connect_ports = NULL, - .ourcert = NULL, - .peercert = NULL, - .peerdn = NULL, - .sni = NULL, - .ocsp = OCSP_NOT_REQ + /* all other elements zero */ }; uschar *dsn_envid = NULL; @@ -141,7 +115,7 @@ int dsn_ret = 0; const pcre *regex_DSN = NULL; uschar *dsn_advertise_hosts = NULL; -#ifdef SUPPORT_TLS +#ifndef DISABLE_TLS BOOL gnutls_compat_mode = FALSE; BOOL gnutls_allow_auto_pkcs11 = FALSE; uschar *openssl_options = NULL; @@ -161,15 +135,13 @@ uschar *tls_ocsp_file = NULL; uschar *tls_privatekey = NULL; BOOL tls_remember_esmtp = FALSE; uschar *tls_require_ciphers = NULL; -# ifdef EXPERIMENTAL_REQUIRETLS -uschar tls_requiretls = 0; /* REQUIRETLS_MSG etc. bit #defines */ -uschar *tls_advertise_requiretls = US"*"; -const pcre *regex_REQUIRETLS = NULL; +# ifdef EXPERIMENTAL_TLS_RESUME +uschar *tls_resumption_hosts = NULL; # endif uschar *tls_try_verify_hosts = NULL; uschar *tls_verify_certificates= US"system"; uschar *tls_verify_hosts = NULL; -#else /*!SUPPORT_TLS*/ +#else /*DISABLE_TLS*/ uschar *tls_advertise_hosts = NULL; #endif @@ -315,7 +287,6 @@ struct global_flags f = .really_exim = TRUE, .receive_call_bombout = FALSE, .recipients_discarded = FALSE, -/* BOOL rfc821_domains = FALSE; <<< on the way out */ .running_in_test_harness = FALSE, .search_find_defer = FALSE, @@ -325,8 +296,12 @@ struct global_flags f = .sender_local = FALSE, .sender_name_forced = FALSE, .sender_set_untrusted = FALSE, -/* BOOL sender_verified_responded = FALSE; /* never used? */ .smtp_authenticated = FALSE, +#ifdef EXPERIMENTAL_PIPE_CONNECT + .smtp_in_early_pipe_advertised = FALSE, + .smtp_in_early_pipe_no_auth = FALSE, + .smtp_in_early_pipe_used = FALSE, +#endif .smtp_in_pipelining_advertised = FALSE, .smtp_in_pipelining_used = FALSE, .spool_file_wireformat = FALSE, @@ -338,6 +313,7 @@ struct global_flags f = .tcp_fastopen_ok = FALSE, .tcp_in_fastopen = FALSE, + .tcp_in_fastopen_data = FALSE, .tcp_in_fastopen_logged = FALSE, .tcp_out_fastopen_logged= FALSE, .timestamps_utc = FALSE, @@ -572,7 +548,7 @@ address_item address_defaults = { .return_filename = NULL, .self_hostname = NULL, .shadow_message = NULL, -#ifdef SUPPORT_TLS +#ifndef DISABLE_TLS .cipher = NULL, .ourcert = NULL, .peercert = NULL, @@ -706,9 +682,9 @@ int callout_cache_negative_expire = 2*60*60; uschar *callout_random_local_part = US"$primary_hostname-$tod_epoch-testing"; uschar *check_dns_names_pattern= US"(?i)^(?>(?(1)\\.|())[^\\W](?>[a-z0-9/_-]*[^\\W])?)+(\\.?)$"; int check_log_inodes = 100; -int check_log_space = 10*1024; /* 10K Kbyte == 10MB */ +int_eximarith_t check_log_space = 10*1024; /* 10K Kbyte == 10MB */ int check_spool_inodes = 100; -int check_spool_space = 10*1024; /* 10K Kbyte == 10MB */ +int_eximarith_t check_spool_space = 10*1024; /* 10K Kbyte == 10MB */ uschar *chunking_advertise_hosts = US"*"; unsigned chunking_datasize = 0; @@ -772,9 +748,11 @@ int debug_fd = -1; FILE *debug_file = NULL; int debug_notall[] = { Di_memory, + Di_noutf8, -1 }; -bit_table debug_options[] = { /* must be in alphabetical order */ +bit_table debug_options[] = { /* must be in alphabetical order and use + only the enum values from macro.h */ BIT_TABLE(D, acl), BIT_TABLE(D, all), BIT_TABLE(D, auth), @@ -793,6 +771,7 @@ bit_table debug_options[] = { /* must be in alphabetical order */ BIT_TABLE(D, local_scan), BIT_TABLE(D, lookup), BIT_TABLE(D, memory), + BIT_TABLE(D, noutf8), BIT_TABLE(D, pid), BIT_TABLE(D, process_info), BIT_TABLE(D, queue_run), @@ -861,7 +840,7 @@ uschar *dmarc_forensic_sender = NULL; uschar *dmarc_history_file = NULL; uschar *dmarc_status = NULL; uschar *dmarc_status_text = NULL; -uschar *dmarc_tld_file = NULL; +uschar *dmarc_tld_file = US DMARC_TLD_FILE; uschar *dmarc_used_domain = NULL; #endif @@ -1026,6 +1005,7 @@ int log_default[] = { /* for initializing log_selector */ Li_host_lookup_failed, Li_lost_incoming_connection, Li_outgoing_interface, /* see d_log_interface in deliver.c */ + Li_msg_id, Li_queue_run, Li_rejected_header, Li_retry_defer, @@ -1044,7 +1024,8 @@ uschar *log_file_path = US LOG_FILE_PATH int log_notall[] = { -1 }; -bit_table log_options[] = { /* must be in alphabetical order */ +bit_table log_options[] = { /* must be in alphabetical order, + with definitions from enum logbit. */ BIT_TABLE(L, 8bitmime), BIT_TABLE(L, acl_warn_skipped), BIT_TABLE(L, address_rewrite), @@ -1068,6 +1049,8 @@ bit_table log_options[] = { /* must be in alphabetical order */ BIT_TABLE(L, incoming_port), BIT_TABLE(L, lost_incoming_connection), BIT_TABLE(L, millisec), + BIT_TABLE(L, msg_id), + BIT_TABLE(L, msg_id_created), BIT_TABLE(L, outgoing_interface), BIT_TABLE(L, outgoing_port), BIT_TABLE(L, pid), @@ -1100,6 +1083,7 @@ bit_table log_options[] = { /* must be in alphabetical order */ BIT_TABLE(L, tls_certificate_verified), BIT_TABLE(L, tls_cipher), BIT_TABLE(L, tls_peerdn), + BIT_TABLE(L, tls_resumption), BIT_TABLE(L, tls_sni), BIT_TABLE(L, unknown_in_list), }; @@ -1179,6 +1163,9 @@ uschar *override_pid_file_path = NULL; uschar *percent_hack_domains = NULL; uschar *pid_file_path = US PID_FILE_PATH "\0<--------------Space to patch pid_file_path->"; +#ifdef EXPERIMENTAL_PIPE_CONNECT +uschar *pipe_connect_advertise_hosts = US"*"; +#endif uschar *pipelining_advertise_hosts = US"*"; uschar *primary_hostname = NULL; uschar process_info[PROCESS_INFO_SIZE]; @@ -1186,10 +1173,10 @@ int process_info_len = 0; uschar *process_log_path = NULL; #if defined(SUPPORT_PROXY) || defined(SUPPORT_SOCKS) -uschar *hosts_proxy = US""; -uschar *proxy_external_address = US""; +uschar *hosts_proxy = NULL; +uschar *proxy_external_address = NULL; int proxy_external_port = 0; -uschar *proxy_local_address = US""; +uschar *proxy_local_address = NULL; int proxy_local_port = 0; #endif @@ -1210,7 +1197,7 @@ pid_t queue_run_pid = (pid_t)0; int queue_run_pipe = -1; uschar *queue_smtp_domains = NULL; -unsigned int random_seed = 0; +uint32_t random_seed = 0; tree_node *ratelimiters_cmd = NULL; tree_node *ratelimiters_conn = NULL; tree_node *ratelimiters_mail = NULL; @@ -1236,13 +1223,13 @@ date will be automatically added on the end. */ uschar *received_header_text = US "Received: " "${if def:sender_rcvhost {from $sender_rcvhost\n\t}" - "{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}" - "${if def:sender_helo_name {(helo=$sender_helo_name)\n\t}}}}" + "{${if def:sender_ident {from ${quote_local_part:$sender_ident} }}" + "${if def:sender_helo_name {(helo=$sender_helo_name)\n\t}}}}" "by $primary_hostname " - "${if def:received_protocol {with $received_protocol}} " - #ifdef SUPPORT_TLS - "${if def:tls_cipher {($tls_cipher)\n\t}}" - #endif + "${if def:received_protocol {with $received_protocol }}" +#ifndef DISABLE_TLS + "${if def:tls_in_cipher_std { tls $tls_in_cipher_std\n\t}}" +#endif "(Exim $version_number)\n\t" "${if def:sender_address {(envelope-from <$sender_address>)\n\t}}" "id $message_exim_id" @@ -1266,6 +1253,9 @@ const pcre *regex_From = NULL; const pcre *regex_IGNOREQUOTA = NULL; const pcre *regex_PIPELINING = NULL; const pcre *regex_SIZE = NULL; +#ifdef EXPERIMENTAL_PIPE_CONNECT +const pcre *regex_EARLY_PIPE = NULL; +#endif const pcre *regex_ismsgid = NULL; const pcre *regex_smtp_code = NULL; uschar *regex_vars[REGEX_VARS]; @@ -1416,6 +1406,7 @@ int sender_verified_rc = -1; uschar *sending_ip_address = NULL; int sending_port = -1; SIGNAL_BOOL sigalrm_seen = FALSE; +const uschar *sigalarm_setter = NULL; uschar **sighup_argv = NULL; int slow_lookup_log = 0; /* millisecs, zero disables */ int smtp_accept_count = 0; @@ -1518,7 +1509,7 @@ gid_t system_filter_gid = 0; uid_t system_filter_uid = (uid_t)-1; blob tcp_fastopen_nodata = { .data = NULL, .len = 0 }; -int tcp_out_fastopen = 0; +tfo_state_t tcp_out_fastopen = TFO_NOT_USED; #ifdef USE_TCP_WRAPPERS uschar *tcp_wrappers_daemon_name = US TCP_WRAPPERS_DAEMON_NAME; #endif