extern int arc_received_instance; /* highest ARC instance number in headers */
extern int arc_oldest_pass; /* lowest passing instance number in headers */
extern const uschar *arc_state; /* verification state */
+extern const uschar *arc_state_reason;
#endif
extern BOOL allow_utf8_domains; /* For experimenting */
extern uschar *authenticated_fail_id; /* ID that failed authentication */
extern uschar *authenticated_id; /* ID that was authenticated */
extern uschar *authenticated_sender; /* From AUTH on MAIL */
extern BOOL authentication_failed; /* TRUE if AUTH was tried and failed */
+extern BOOL authentication_local; /* TRUE if non-smtp (implicit authentication) */
extern uschar *auth_advertise_hosts; /* Only advertise to these */
extern auth_info auths_available[]; /* Vector of available auth mechanisms */
extern auth_instance *auths; /* Chain of instantiated auths */
extern uschar *dkim_cur_signer; /* Expansion variable, holds the current "signer" domain or identity during a acl_smtp_dkim run */
extern BOOL dkim_disable_verify; /* Set via ACL control statement. When set, DKIM verification is disabled for the current message */
extern int dkim_key_length; /* Expansion variable, length of signing key in bits */
+extern void *dkim_signatures; /* Actually a (pdkim_signature *) but most files do not need to know */
extern uschar *dkim_signers; /* Expansion variable, holds colon-separated list of domains and identities that have signed a message */
extern uschar *dkim_signing_domain; /* Expansion variable, domain used for signing a message. */
extern uschar *dkim_signing_selector; /* Expansion variable, selector used for signing a message. */
#endif
#ifdef EXPERIMENTAL_DMARC
extern BOOL dmarc_has_been_checked; /* Global variable to check if test has been called yet */
-extern uschar *dmarc_ar_header; /* Expansion variable, suggested header for dmarc auth results */
extern uschar *dmarc_domain_policy; /* Expansion for declared policy of used domain */
extern uschar *dmarc_forensic_sender; /* Set sender address for forensic reports */
extern uschar *dmarc_history_file; /* Expansion variable, file to store dmarc results */
extern uschar *gecos_pattern; /* Pattern to match */
extern rewrite_rule *global_rewrite_rules; /* Chain of rewriting rules */
+extern volatile sig_atomic_t had_command_timeout; /* Alarm sighandler called */
+extern volatile sig_atomic_t had_command_sigterm; /* TERM sighandler called */
+extern volatile sig_atomic_t had_data_timeout; /* Alarm sighandler called */
+extern volatile sig_atomic_t had_data_sigint; /* TERM/INT sighandler called */
extern int header_insert_maxlen; /* Max for inserting headers */
extern int header_maxsize; /* Max total length for header */
extern int header_line_maxsize; /* Max for an individual line */
extern uschar *local_from_prefix; /* Permitted prefixes */
extern uschar *local_from_suffix; /* Permitted suffixes */
extern uschar *local_interfaces; /* For forcing specific interfaces */
+#ifdef HAVE_LOCAL_SCAN
extern uschar *local_scan_data; /* Text returned by local_scan() */
extern optionlist local_scan_options[];/* Option list for local_scan() */
extern int local_scan_options_count; /* Size of the list */
extern int local_scan_timeout; /* Timeout for local_scan() */
+#endif
extern BOOL local_sender_retain; /* Retain Sender: (with no From: check) */
extern gid_t local_user_gid; /* As it says; may be set in routers */
extern uid_t local_user_uid; /* As it says; may be set in routers */
extern uschar *spf_header_comment; /* spf header comment */
extern uschar *spf_received; /* Received-SPF: header */
extern uschar *spf_result; /* spf result in string form */
+extern BOOL spf_result_guessed; /* spf result is of best-guess operation */
extern uschar *spf_smtp_comment; /* spf comment to include in SMTP reply */
#endif
extern BOOL split_spool_directory; /* TRUE to use multiple subdirs */