/* 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 = {
- .active = -1,
+ .active = {.sock = -1},
.bits = 0,
.certificate_verified = FALSE,
#ifdef SUPPORT_DANE
.ocsp = OCSP_NOT_REQ
};
tls_support tls_out = {
- .active = -1,
+ .active = {.sock = -1},
.bits = 0,
.certificate_verified = FALSE,
#ifdef SUPPORT_DANE
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 = {
.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 */
};
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;
+void *dkim_signatures = NULL;
uschar *dkim_signers = NULL;
uschar *dkim_signing_domain = NULL;
uschar *dkim_signing_selector = NULL;
#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 *dns_again_means_nonexist = NULL;
int dns_csa_search_limit = 5;
BOOL dns_csa_use_reverse = TRUE;
+int dns_cname_loops = 1;
#ifdef SUPPORT_DANE
int dns_dane_ok = -1;
#endif
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 *local_interfaces = US"0.0.0.0";
#endif
+#ifdef HAVE_LOCAL_SCAN
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);
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;
+FILE *spool_data_file = NULL;
uschar *spool_directory = US SPOOL_DIRECTORY
"\0<--------------Space to patch spool_directory->";
BOOL spool_file_wireformat = FALSE;