X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/a0d6ba8acc09196843fdea4132bb0814b2e81132..8669f003e82e39e578787d9ebc1b40f36c024332:/src/src/globals.h diff --git a/src/src/globals.h b/src/src/globals.h index 140502a8e..920267d9d 100644 --- a/src/src/globals.h +++ b/src/src/globals.h @@ -1,10 +1,10 @@ -/* $Cambridge: exim/src/src/globals.h,v 1.30 2005/11/15 10:08:25 ph10 Exp $ */ +/* $Cambridge: exim/src/src/globals.h,v 1.56 2007/06/27 11:01:52 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2005 */ +/* Copyright (c) University of Cambridge 1995 - 2007 */ /* See the file NOTICE for conditions of use and distribution. */ /* Almost all the global variables are defined together in this one header, so @@ -71,6 +71,9 @@ extern uschar *tls_on_connect_ports; /* Ports always tls-on-connect */ extern uschar *tls_peerdn; /* DN from peer */ #ifdef SUPPORT_TLS +extern uschar *gnutls_require_mac; /* So some can be avoided */ +extern uschar *gnutls_require_kx; /* So some can be avoided */ +extern uschar *gnutls_require_proto; /* So some can be avoided */ extern const pcre *regex_STARTTLS; /* For recognizing STARTTLS settings */ extern uschar *tls_advertise_hosts; /* host for which TLS is advertised */ extern uschar *tls_certificate; /* Certificate file */ @@ -93,6 +96,7 @@ extern int (*receive_getc)(void); extern int (*receive_ungetc)(int); extern int (*receive_feof)(void); extern int (*receive_ferror)(void); +extern BOOL (*receive_smtp_buffered)(void); /* For clearing, saving, restoring address expansion variables. We have to have @@ -104,11 +108,13 @@ extern uschar **address_expansions[ADDRESS_EXPANSIONS_COUNT]; /* General global variables */ extern BOOL accept_8bitmime; /* Allow *BITMIME incoming */ +extern header_line *acl_added_headers; /* Headers added by an ACL */ extern tree_node *acl_anchor; /* Tree of named ACLs */ extern uschar *acl_not_smtp; /* ACL run for non-SMTP messages */ #ifdef WITH_CONTENT_SCAN extern uschar *acl_not_smtp_mime; /* For MIME parts of ditto */ #endif +extern uschar *acl_not_smtp_start; /* ACL run at the beginning of a non-SMTP session */ extern uschar *acl_smtp_auth; /* ACL run for AUTH */ extern uschar *acl_smtp_connect; /* ACL run on SMTP connection */ extern uschar *acl_smtp_data; /* ACL run after DATA received */ @@ -126,11 +132,11 @@ extern uschar *acl_smtp_rcpt; /* ACL run for RCPT */ extern uschar *acl_smtp_starttls; /* ACL run for STARTTLS */ extern uschar *acl_smtp_vrfy; /* ACL run for VRFY */ extern BOOL acl_temp_details; /* TRUE to give details for 4xx error */ -extern uschar *acl_var[ACL_C_MAX+ACL_M_MAX]; /* User variables */ +extern tree_node *acl_var_c; /* ACL connection variables */ +extern tree_node *acl_var_m; /* ACL messsage variables */ extern uschar *acl_verify_message; /* User message for verify failure */ -extern header_line *acl_warn_headers; /* Warning headers added by ACL */ extern string_item *acl_warn_logged; /* Logged lines */ -extern int acl_wherecodes[]; /* Response codes for ACL fails */ +extern uschar *acl_wherecodes[]; /* Response codes for ACL fails */ extern uschar *acl_wherenames[]; /* Names for messages */ extern BOOL active_local_from_check;/* For adding Sender: (switchable) */ extern BOOL active_local_sender_retain; /* For keeping Sender: (switchable) */ @@ -143,6 +149,7 @@ extern tree_node *addresslist_anchor; /* Tree of defined address lists */ extern int addresslist_count; /* Number defined */ extern gid_t *admin_groups; /* List of admin groups */ extern BOOL admin_user; /* True if caller can do admin */ +extern BOOL allow_auth_unadvertised;/* As it says */ extern BOOL allow_domain_literals; /* As it says */ extern BOOL allow_mx_to_ip; /* Allow MX records to -> ip address */ extern BOOL allow_unqualified_recipient; /* As it says */ @@ -157,6 +164,7 @@ extern auth_instance *auths; /* Chain of instantiated auths */ extern auth_instance auth_defaults; /* Default values */ extern uschar *auth_defer_msg; /* Error message for log */ extern uschar *auth_defer_user_msg; /* Error message for user */ +extern uschar *auth_vars[]; /* $authn variables */ extern int auto_thaw; /* Auto-thaw interval */ #ifdef WITH_CONTENT_SCAN extern uschar *av_scanner; /* AntiVirus scanner to use for the malware condition */ @@ -176,8 +184,6 @@ extern int bmi_deliver; /* Flag that determines if the message sh extern int bmi_run; /* Flag that determines if message should be run through Brightmail server */ extern uschar *bmi_verdicts; /* BASE64-encoded verdicts with recipient lists */ #endif -extern int body_linecount; /* Line count in body */ -extern int body_zerocount; /* Binary zero count in body */ extern uschar *bounce_message_file; /* Template file */ extern uschar *bounce_message_text; /* One-liner */ extern uschar *bounce_recipient; /* When writing an errmsg */ @@ -271,6 +277,12 @@ extern int demime_errorlevel; /* Severity of MIME error */ extern int demime_ok; /* Nonzero if message has been demimed */ extern uschar *demime_reason; /* Reason for broken MIME container */ #endif +extern BOOL disable_callout_flush; /* Don't flush before callouts */ +extern BOOL disable_delay_flush; /* Don't flush before "delay" in ACL */ +#ifdef ENABLE_DISABLE_FSYNC +extern BOOL disable_fsync; /* Not for normal use */ +#endif +extern BOOL disable_ipv6; /* Don't do any IPv6 things */ extern BOOL disable_logging; /* Disables log writing when TRUE */ #ifdef EXPERIMENTAL_DOMAINKEYS @@ -286,6 +298,7 @@ extern uschar *dns_ipv4_lookup; /* For these domains, don't look for AAAA extern int dns_retrans; /* Retransmission time setting */ extern int dns_retry; /* Number of retries */ extern uschar *dnslist_domain; /* DNS (black) list domain */ +extern uschar *dnslist_matched; /* DNS (black) list matched key */ extern uschar *dnslist_text; /* DNS (black) list text message */ extern uschar *dnslist_value; /* DNS (black) list IP address */ extern tree_node *domainlist_anchor; /* Tree of defined domain lists */ @@ -296,6 +309,8 @@ extern BOOL dot_ends; /* TRUE if "." ends non-SMTP input */ /* This option is now a no-opt, retained for compatibility */ extern BOOL drop_cr; /* For broken local MUAs */ +extern uschar *dsn_from; /* From: string for DSNs */ + extern BOOL enable_dollar_recipients; /* Make $recipients available */ extern int envelope_to_remove; /* Remove envelope_to_headers */ extern int errno_quota; /* Quota errno in this OS */ @@ -331,6 +346,7 @@ extern uid_t fixed_never_users[]; /* Can't be overridden */ extern uschar *found_extension; /* demime acl condition: file extension found */ #endif extern uschar *freeze_tell; /* Message on (some) freezings */ +extern uschar *freeze_tell_config; /* The configured setting */ extern uschar *fudged_queue_times; /* For use in test harness */ extern uschar *gecos_name; /* To be expanded when pattern matches */ @@ -372,6 +388,7 @@ extern int ignore_bounce_errors_after; /* Keep them for this time. */ extern BOOL ignore_fromline_local; /* Local SMTP ignore fromline */ extern uschar *ignore_fromline_hosts; /* Hosts permitted to send "From " */ extern BOOL is_inetd; /* True for inetd calls */ +extern uschar *iterate_item; /* Item from iterate list */ extern int journal_fd; /* Fd for journal file */ @@ -398,11 +415,12 @@ extern unsigned int log_extra_selector;/* Bit map of logging options other than extern uschar *log_file_path; /* If unset, use default */ extern bit_table log_options[]; /* Table of options */ extern int log_options_count; /* Size of table */ -extern unsigned int log_write_selector;/* Bit map of logging options for log_write() */ +extern int log_reject_target; /* Target log for ACL rejections */ extern uschar *log_selector_string; /* As supplied in the config */ extern FILE *log_stderr; /* Copy of stderr for log use, or NULL */ extern BOOL log_testing_mode; /* TRUE in various testing modes */ extern BOOL log_timezone; /* TRUE to include the timezone in log lines */ +extern unsigned int log_write_selector;/* Bit map of logging options for log_write() */ extern uschar *login_sender_address; /* The actual sender address */ extern lookup_info lookup_list[]; /* Vector of available lookups */ extern int lookup_list_count; /* Number of entries in the list */ @@ -414,6 +432,7 @@ extern uschar *mailstore_basename; /* For mailstore deliveries */ #ifdef WITH_CONTENT_SCAN extern uschar *malware_name; /* Name of virus or malware ("W32/Klez-H") */ #endif +extern int max_received_linelength;/* What it says */ extern int max_username_length; /* For systems with broken getpwnam() */ extern int message_age; /* In seconds */ extern uschar *message_body; /* Start of message body for filter */ @@ -482,6 +501,7 @@ extern BOOL parse_found_group; /* In the middle of a group */ extern uschar *percent_hack_domains; /* Local domains for which '% operates */ extern uschar *pid_file_path; /* For writing daemon pids */ extern uschar *pipelining_advertise_hosts; /* As it says */ +extern BOOL pipelining_enable; /* As it says */ extern BOOL preserve_message_logs; /* Save msglog files */ extern uschar *primary_hostname; /* Primary name of this computer */ extern BOOL print_topbitchars; /* Topbit chars are printing chars */ @@ -507,6 +527,7 @@ extern int queue_run_pipe; /* Pipe for synchronizing */ extern int queue_interval; /* Queue running interval */ extern BOOL queue_only; /* TRUE to disable immediate delivery */ extern int queue_only_load; /* Max load before auto-queue */ +extern BOOL queue_only_load_latch; /* Latch queue_only_load TRUE */ extern uschar *queue_only_file; /* Queue if file exists/not-exists */ extern BOOL queue_only_override; /* Allow override from command line */ extern BOOL queue_only_policy; /* ACL or local_scan wants queue_only */ @@ -551,6 +572,7 @@ extern const pcre *regex_From; /* For recognizing "From_" lines */ extern const pcre *regex_IGNOREQUOTA; /* For recognizing IGNOREQUOTA (LMTP) */ extern const pcre *regex_PIPELINING; /* For recognizing PIPELINING */ extern const pcre *regex_SIZE; /* For recognizing SIZE settings */ +extern const pcre *regex_smtp_code; /* For recognizing SMTP codes */ extern const pcre *regex_ismsgid; /* Compiled r.e. for message it */ #ifdef WITH_CONTENT_SCAN extern uschar *regex_match_string; /* regex that matched a line (regex ACL condition) */ @@ -604,6 +626,8 @@ extern uschar *sender_unqualified_hosts; /* Permitted unqualified senders */ extern uschar *sender_verify_failure; /* What went wrong */ extern address_item *sender_verified_list; /* Saved chain of sender verifies */ extern address_item *sender_verified_failed; /* The one that caused denial */ +extern uschar *sending_ip_address; /* Address of outgoing (SMTP) interface */ +extern int sending_port; /* Port of outgoing interface */ extern volatile BOOL sigalrm_seen; /* Flag for sigalrm_handler */ extern uschar **sighup_argv; /* Args for re-execing after SIGHUP */ extern int smtp_accept_count; /* Count of connections */ @@ -620,8 +644,11 @@ extern uschar *smtp_active_hostname; /* Hostname for this message */ extern BOOL smtp_authenticated; /* Sending client has authenticated */ extern uschar *smtp_banner; /* Banner string (to be expanded) */ extern BOOL smtp_check_spool_space; /* TRUE to check SMTP SIZE value */ +extern int smtp_ch_index; /* Index in smtp_connection_had */ extern uschar *smtp_cmd_argument; /* For all SMTP commands */ extern uschar *smtp_cmd_buffer; /* SMTP command buffer */ +extern time_t smtp_connection_start; /* Start time of SMTP connection */ +extern uschar smtp_connection_had[]; /* Recent SMTP commands */ extern int smtp_connect_backlog; /* Max backlog permitted */ extern double smtp_delay_mail; /* Current MAIL delay */ extern double smtp_delay_rcpt; /* Current RCPT delay */ @@ -682,6 +709,7 @@ extern uschar *srs_status; /* SRS staus */ extern BOOL srs_usehash; /* SRS use hash flag */ extern BOOL srs_usetimestamp; /* SRS use timestamp flag */ #endif +extern BOOL strict_acl_vars; /* ACL variables have to be set before being used */ extern int string_datestamp_offset;/* After insertion by string_format */ extern BOOL strip_excess_angle_brackets; /* Surrounding route-addrs */ extern BOOL strip_trailing_dot; /* Remove dots at ends of domains */ @@ -708,6 +736,7 @@ extern BOOL system_filter_uid_set; /* TRUE if uid set */ extern BOOL system_filtering; /* TRUE when running system filter */ extern BOOL tcp_nodelay; /* Controls TCP_NODELAY on daemon */ +extern int test_harness_load_avg; /* For use when testing */ extern int thismessage_size_limit; /* Limit for this message */ extern int timeout_frozen_after; /* Max time to keep frozen messages */ extern BOOL timestamps_utc; /* Use UTC for all times */