git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
unbreak test: s/log_write/logwrite/
[exim.git]
/
src
/
src
/
globals.c
diff --git
a/src/src/globals.c
b/src/src/globals.c
index 303c8025cb1e8dcf4e238547f18d2f115be21b5b..10045f482d43040b0f5885f97dff6f3f3c91ebe2 100644
(file)
--- a/
src/src/globals.c
+++ b/
src/src/globals.c
@@
-2,7
+2,7
@@
* Exim - an Internet mail transport agent *
*************************************************/
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 201
7
*/
+/* Copyright (c) University of Cambridge 1995 - 201
8
*/
/* See the file NOTICE for conditions of use and distribution. */
/* All the global variables are defined together in this one module, so
/* See the file NOTICE for conditions of use and distribution. */
/* All the global variables are defined together in this one module, so
@@
-98,13
+98,14
@@
BOOL move_frozen_messages = FALSE;
/* 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
/* 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. */
+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 = {
tls_support tls_in = {
- .active =
-1
,
+ .active =
{.sock = -1}
,
.bits = 0,
.certificate_verified = FALSE,
.bits = 0,
.certificate_verified = FALSE,
-#ifdef
EXPERIMENTAL
_DANE
+#ifdef
SUPPORT
_DANE
.dane_verified = FALSE,
.tlsa_usage = 0,
#endif
.dane_verified = FALSE,
.tlsa_usage = 0,
#endif
@@
-118,10
+119,10
@@
tls_support tls_in = {
.ocsp = OCSP_NOT_REQ
};
tls_support tls_out = {
.ocsp = OCSP_NOT_REQ
};
tls_support tls_out = {
- .active =
-1
,
+ .active =
{.sock = -1}
,
.bits = 0,
.certificate_verified = FALSE,
.bits = 0,
.certificate_verified = FALSE,
-#ifdef
EXPERIMENTAL
_DANE
+#ifdef
SUPPORT
_DANE
.dane_verified = FALSE,
.tlsa_usage = 0,
#endif
.dane_verified = FALSE,
.tlsa_usage = 0,
#endif
@@
-160,6
+161,11
@@
uschar *tls_ocsp_file = NULL;
uschar *tls_privatekey = NULL;
BOOL tls_remember_esmtp = FALSE;
uschar *tls_require_ciphers = 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;
+# endif
uschar *tls_try_verify_hosts = NULL;
uschar *tls_verify_certificates= US"system";
uschar *tls_verify_hosts = NULL;
uschar *tls_try_verify_hosts = NULL;
uschar *tls_verify_certificates= US"system";
uschar *tls_verify_hosts = NULL;
@@
-420,11
+426,21
@@
BOOL allow_domain_literals = FALSE;
BOOL allow_mx_to_ip = FALSE;
BOOL allow_unqualified_recipient = TRUE; /* For local messages */
BOOL allow_unqualified_sender = TRUE; /* Reset for SMTP */
BOOL allow_mx_to_ip = FALSE;
BOOL allow_unqualified_recipient = TRUE; /* For local messages */
BOOL allow_unqualified_sender = TRUE; /* Reset for SMTP */
-BOOL allow_utf8_domains = FALSE;
+BOOL allow_utf8_domains = FALSE;
+
+#ifdef EXPERIMENTAL_ARC
+struct arc_set *arc_received = NULL;
+int arc_received_instance = 0;
+int arc_oldest_pass = 0;
+const uschar *arc_state = NULL;
+const uschar *arc_state_reason = NULL;
+#endif
+
uschar *authenticated_fail_id = NULL;
uschar *authenticated_id = NULL;
uschar *authenticated_sender = NULL;
BOOL authentication_failed = FALSE;
uschar *authenticated_fail_id = NULL;
uschar *authenticated_id = NULL;
uschar *authenticated_sender = NULL;
BOOL authentication_failed = FALSE;
+BOOL authentication_local = FALSE;
auth_instance *auths = NULL;
uschar *auth_advertise_hosts = US"*";
auth_instance auth_defaults = {
auth_instance *auths = NULL;
uschar *auth_advertise_hosts = US"*";
auth_instance auth_defaults = {
@@
-488,7
+504,6
@@
int bounce_return_linesize_limit = 998;
BOOL bounce_return_message = TRUE;
int bounce_return_size_limit = 100*1024;
uschar *bounce_sender_authentication = NULL;
BOOL bounce_return_message = TRUE;
int bounce_return_size_limit = 100*1024;
uschar *bounce_sender_authentication = NULL;
-uschar *builtin_macros_create_trigger = NULL;
uschar *callout_address = NULL;
int callout_cache_domain_positive_expire = 7*24*60*60;
uschar *callout_address = NULL;
int callout_cache_domain_positive_expire = 7*24*60*60;
@@
-550,7
+565,7
@@
cut_t cutthrough = {
.delivery = FALSE, /* when to attempt */
.defer_pass = FALSE, /* on defer: spool locally */
.is_tls = FALSE, /* not a TLS conn yet */
.delivery = FALSE, /* when to attempt */
.defer_pass = FALSE, /* on defer: spool locally */
.is_tls = FALSE, /* not a TLS conn yet */
- .
fd = -1,
/* open connection */
+ .
cctx = {.sock = -1},
/* open connection */
.nrcpt = 0, /* number of addresses */
};
.nrcpt = 0, /* number of addresses */
};
@@
-660,10
+675,11
@@
BOOL disable_ipv6 = FALSE;
BOOL disable_logging = FALSE;
#ifndef DISABLE_DKIM
BOOL disable_logging = FALSE;
#ifndef DISABLE_DKIM
-
BOOL dkim_collect_input = FALSE
;
+
unsigned dkim_collect_input = 0
;
uschar *dkim_cur_signer = NULL;
BOOL dkim_disable_verify = FALSE;
int dkim_key_length = 0;
uschar *dkim_cur_signer = NULL;
BOOL dkim_disable_verify = FALSE;
int dkim_key_length = 0;
+void *dkim_signatures = NULL;
uschar *dkim_signers = NULL;
uschar *dkim_signing_domain = NULL;
uschar *dkim_signing_selector = NULL;
uschar *dkim_signers = NULL;
uschar *dkim_signing_domain = NULL;
uschar *dkim_signing_selector = NULL;
@@
-674,7
+690,6
@@
uschar *dkim_verify_reason = NULL;
#endif
#ifdef EXPERIMENTAL_DMARC
BOOL dmarc_has_been_checked = FALSE;
#endif
#ifdef EXPERIMENTAL_DMARC
BOOL dmarc_has_been_checked = FALSE;
-uschar *dmarc_ar_header = NULL;
uschar *dmarc_domain_policy = NULL;
uschar *dmarc_forensic_sender = NULL;
uschar *dmarc_history_file = NULL;
uschar *dmarc_domain_policy = NULL;
uschar *dmarc_forensic_sender = NULL;
uschar *dmarc_history_file = NULL;
@@
-689,7
+704,8
@@
BOOL dmarc_enable_forensic = FALSE;
uschar *dns_again_means_nonexist = NULL;
int dns_csa_search_limit = 5;
BOOL dns_csa_use_reverse = TRUE;
uschar *dns_again_means_nonexist = NULL;
int dns_csa_search_limit = 5;
BOOL dns_csa_use_reverse = TRUE;
-#ifdef EXPERIMENTAL_DANE
+int dns_cname_loops = 1;
+#ifdef SUPPORT_DANE
int dns_dane_ok = -1;
#endif
uschar *dns_ipv4_lookup = NULL;
int dns_dane_ok = -1;
#endif
uschar *dns_ipv4_lookup = NULL;
@@
-762,6
+778,10
@@
uschar *gecos_name = NULL;
uschar *gecos_pattern = NULL;
rewrite_rule *global_rewrite_rules = NULL;
uschar *gecos_pattern = NULL;
rewrite_rule *global_rewrite_rules = NULL;
+volatile sig_atomic_t had_command_timeout = 0;
+volatile sig_atomic_t had_command_sigterm = 0;
+volatile sig_atomic_t had_data_timeout = 0;
+volatile sig_atomic_t had_data_sigint = 0;
uschar *headers_charset = US HEADERS_CHARSET;
int header_insert_maxlen = 64 * 1024;
header_line *header_last = NULL;
uschar *headers_charset = US HEADERS_CHARSET;
int header_insert_maxlen = 64 * 1024;
header_line *header_last = NULL;
@@
-786,7
+806,7
@@
header_name header_names[] = {
{ US"to", 2, TRUE, htype_to }
};
{ US"to", 2, TRUE, htype_to }
};
-int header_names_size =
sizeof(header_names)/sizeof(header_name
);
+int header_names_size =
nelem(header_names
);
BOOL header_rewritten = FALSE;
uschar *helo_accept_junk_hosts = NULL;
BOOL header_rewritten = FALSE;
uschar *helo_accept_junk_hosts = NULL;
@@
-845,8
+865,10
@@
uschar *local_interfaces = US"<; ::0 ; 0.0.0.0";
uschar *local_interfaces = US"0.0.0.0";
#endif
uschar *local_interfaces = US"0.0.0.0";
#endif
+#ifdef HAVE_LOCAL_SCAN
uschar *local_scan_data = NULL;
int local_scan_timeout = 5*60;
uschar *local_scan_data = NULL;
int local_scan_timeout = 5*60;
+#endif
BOOL local_sender_retain = FALSE;
gid_t local_user_gid = (gid_t)(-1);
uid_t local_user_uid = (uid_t)(-1);
BOOL local_sender_retain = FALSE;
gid_t local_user_gid = (gid_t)(-1);
uid_t local_user_uid = (uid_t)(-1);
@@
-916,6
+938,7
@@
bit_table log_options[] = { /* must be in alphabetical order */
BIT_TABLE(L, queue_run),
BIT_TABLE(L, queue_time),
BIT_TABLE(L, queue_time_overall),
BIT_TABLE(L, queue_run),
BIT_TABLE(L, queue_time),
BIT_TABLE(L, queue_time_overall),
+ BIT_TABLE(L, receive_time),
BIT_TABLE(L, received_recipients),
BIT_TABLE(L, received_sender),
BIT_TABLE(L, rejected_header),
BIT_TABLE(L, received_recipients),
BIT_TABLE(L, received_sender),
BIT_TABLE(L, rejected_header),
@@
-953,6
+976,7
@@
uschar *lookup_dnssec_authenticated = NULL;
int lookup_open_max = 25;
uschar *lookup_value = NULL;
int lookup_open_max = 25;
uschar *lookup_value = NULL;
+macro_item *macros_user = NULL;
uschar *mailstore_basename = NULL;
#ifdef WITH_CONTENT_SCAN
uschar *malware_name = NULL; /* Virus Name */
uschar *mailstore_basename = NULL;
#ifdef WITH_CONTENT_SCAN
uschar *malware_name = NULL; /* Virus Name */
@@
-1121,6
+1145,7
@@
uschar *received_header_text = US
int received_headers_max = 30;
uschar *received_protocol = NULL;
struct timeval received_time = { 0, 0 };
int received_headers_max = 30;
uschar *received_protocol = NULL;
struct timeval received_time = { 0, 0 };
+struct timeval received_time_taken = { 0, 0 };
uschar *recipient_data = NULL;
uschar *recipient_unqualified_hosts = NULL;
uschar *recipient_verify_failure = NULL;
uschar *recipient_data = NULL;
uschar *recipient_unqualified_hosts = NULL;
uschar *recipient_verify_failure = NULL;
@@
-1275,6
+1300,7
@@
uschar *sender_helo_name = NULL;
uschar **sender_host_aliases = &no_aliases;
uschar *sender_host_address = NULL;
uschar *sender_host_authenticated = NULL;
uschar **sender_host_aliases = &no_aliases;
uschar *sender_host_address = NULL;
uschar *sender_host_authenticated = NULL;
+uschar *sender_host_auth_pubname = NULL;
unsigned int sender_host_cache[(MAX_NAMED_LIST * 2)/32];
BOOL sender_host_dnssec = FALSE;
uschar *sender_host_name = NULL;
unsigned int sender_host_cache[(MAX_NAMED_LIST * 2)/32];
BOOL sender_host_dnssec = FALSE;
uschar *sender_host_name = NULL;
@@
-1371,10
+1397,12
@@
uschar *spf_guess = US"v=spf1 a/24 mx/24 ptr ?all";
uschar *spf_header_comment = NULL;
uschar *spf_received = NULL;
uschar *spf_result = NULL;
uschar *spf_header_comment = NULL;
uschar *spf_received = NULL;
uschar *spf_result = NULL;
+BOOL spf_result_guessed = FALSE;
uschar *spf_smtp_comment = NULL;
#endif
BOOL split_spool_directory = FALSE;
uschar *spf_smtp_comment = NULL;
#endif
BOOL split_spool_directory = FALSE;
+FILE *spool_data_file = NULL;
uschar *spool_directory = US SPOOL_DIRECTORY
"\0<--------------Space to patch spool_directory->";
BOOL spool_file_wireformat = FALSE;
uschar *spool_directory = US SPOOL_DIRECTORY
"\0<--------------Space to patch spool_directory->";
BOOL spool_file_wireformat = FALSE;
@@
-1548,8
+1576,8
@@
uschar *uucp_from_sender = US"$1";
uschar *verify_mode = NULL;
uschar *version_copyright =
uschar *verify_mode = NULL;
uschar *version_copyright =
- US"Copyright (c) University of Cambridge, 1995 - 201
7
\n"
- "(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 201
7
";
+ US"Copyright (c) University of Cambridge, 1995 - 201
8
\n"
+ "(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 201
8
";
uschar *version_date = US"?";
uschar *version_cnumber = US"????";
uschar *version_string = US"?";
uschar *version_date = US"?";
uschar *version_cnumber = US"????";
uschar *version_string = US"?";