X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/dbb8fff1d199ba2f88bbbc09a87b883022d77f3f..81344b40e3de597f60758926e5e1ae7a81dd5457:/src/src/globals.c diff --git a/src/src/globals.c b/src/src/globals.c index acabeb8c3..87ff2e65f 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,10 +135,13 @@ uschar *tls_ocsp_file = NULL; uschar *tls_privatekey = NULL; BOOL tls_remember_esmtp = FALSE; uschar *tls_require_ciphers = 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 @@ -261,8 +238,9 @@ struct global_flags f = .disable_logging = FALSE, #ifndef DISABLE_DKIM .dkim_disable_verify = FALSE, + .dkim_init_done = FALSE, #endif -#ifdef EXPERIMENTAL_DMARC +#ifdef SUPPORT_DMARC .dmarc_has_been_checked = FALSE, .dmarc_disable_verify = FALSE, .dmarc_enable_forensic = FALSE, @@ -320,7 +298,7 @@ struct global_flags f = .sender_name_forced = FALSE, .sender_set_untrusted = FALSE, .smtp_authenticated = FALSE, -#ifdef EXPERIMENTAL_PIPE_CONNECT +#ifndef DISABLE_PIPE_CONNECT .smtp_in_early_pipe_advertised = FALSE, .smtp_in_early_pipe_no_auth = FALSE, .smtp_in_early_pipe_used = FALSE, @@ -571,7 +549,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, @@ -608,6 +586,7 @@ address_item address_defaults = { .errors_address = NULL, .extra_headers = NULL, .remove_headers = NULL, + .variables = NULL, #ifdef EXPERIMENTAL_SRS .srs_sender = NULL, #endif @@ -852,12 +831,15 @@ void *dkim_signatures = NULL; uschar *dkim_signers = NULL; uschar *dkim_signing_domain = NULL; uschar *dkim_signing_selector = NULL; +uschar *dkim_verify_hashes = US"sha256:sha512:sha1"; +uschar *dkim_verify_keytypes = US"ed25519:rsa"; +BOOL dkim_verify_minimal = FALSE; uschar *dkim_verify_overall = NULL; uschar *dkim_verify_signers = US"$dkim_signers"; uschar *dkim_verify_status = NULL; uschar *dkim_verify_reason = NULL; #endif -#ifdef EXPERIMENTAL_DMARC +#ifdef SUPPORT_DMARC uschar *dmarc_domain_policy = NULL; uschar *dmarc_forensic_sender = NULL; uschar *dmarc_history_file = NULL; @@ -1047,7 +1029,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), @@ -1105,6 +1088,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), }; @@ -1184,12 +1168,12 @@ 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 +#ifndef DISABLE_PIPE_CONNECT uschar *pipe_connect_advertise_hosts = US"*"; #endif uschar *pipelining_advertise_hosts = US"*"; uschar *primary_hostname = NULL; -uschar process_info[PROCESS_INFO_SIZE]; +uschar *process_info; int process_info_len = 0; uschar *process_log_path = NULL; @@ -1248,7 +1232,7 @@ uschar *received_header_text = US "${if def:sender_helo_name {(helo=$sender_helo_name)\n\t}}}}" "by $primary_hostname " "${if def:received_protocol {with $received_protocol }}" -#ifdef SUPPORT_TLS +#ifndef DISABLE_TLS "${if def:tls_in_cipher_std { tls $tls_in_cipher_std\n\t}}" #endif "(Exim $version_number)\n\t" @@ -1274,7 +1258,7 @@ const pcre *regex_From = NULL; const pcre *regex_IGNOREQUOTA = NULL; const pcre *regex_PIPELINING = NULL; const pcre *regex_SIZE = NULL; -#ifdef EXPERIMENTAL_PIPE_CONNECT +#ifndef DISABLE_PIPE_CONNECT const pcre *regex_EARLY_PIPE = NULL; #endif const pcre *regex_ismsgid = NULL; @@ -1361,6 +1345,7 @@ router_instance router_defaults = { .retry_use_local_part = TRUE_UNSET, .same_domain_copy_routing = FALSE, .self_rewrite = FALSE, + .set = NULL, .suffix_optional = FALSE, .verify_only = FALSE, .verify_recipient = TRUE, @@ -1382,6 +1367,7 @@ router_instance router_defaults = { }; uschar *router_name = NULL; +tree_node *router_var = NULL; ip_address_item *running_interfaces = NULL; @@ -1512,6 +1498,9 @@ uschar *srs_recipient = NULL; uschar *srs_secrets = NULL; uschar *srs_status = NULL; #endif +#ifdef EXPERIMENTAL_SRS_NATIVE +uschar *srs_recipient = NULL; +#endif int string_datestamp_offset= -1; int string_datestamp_length= 0; int string_datestamp_type = -1; @@ -1537,6 +1526,9 @@ uschar *tcp_wrappers_daemon_name = US TCP_WRAPPERS_DAEMON_NAME; int test_harness_load_avg = 0; int thismessage_size_limit = 0; int timeout_frozen_after = 0; +#ifdef MEASURE_TIMING +struct timeval timestamp_startup; +#endif transport_instance *transports = NULL;