-/* $Cambridge: exim/src/src/globals.c,v 1.69 2007/02/06 10:00:24 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.c,v 1.88 2010/06/12 15:21:26 jetmore Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2007 */
+/* Copyright (c) University of Cambridge 1995 - 2009 */
/* See the file NOTICE for conditions of use and distribution. */
/* All the global variables are defined together in this one module, so
data blocks and hence have the opt_public flag set. */
optionlist optionlist_auths[] = {
+ { "client_condition", opt_stringptr | opt_public,
+ (void *)(offsetof(auth_instance, client_condition)) },
{ "driver", opt_stringptr | opt_public,
(void *)(offsetof(auth_instance, driver_name)) },
{ "public_name", opt_stringptr | opt_public,
uschar *tls_peerdn = NULL;
#ifdef SUPPORT_TLS
+BOOL gnutls_compat_mode = FALSE;
uschar *gnutls_require_mac = NULL;
uschar *gnutls_require_kx = NULL;
uschar *gnutls_require_proto = NULL;
+uschar *openssl_options = NULL;
const pcre *regex_STARTTLS = NULL;
uschar *tls_advertise_hosts = NULL; /* This is deliberate */
uschar *tls_certificate = NULL;
int (*receive_ungetc)(int) = stdin_ungetc;
int (*receive_feof)(void) = stdin_feof;
int (*receive_ferror)(void) = stdin_ferror;
+BOOL (*receive_smtp_buffered)(void) = NULL; /* Only used for SMTP */
#endif
header_line *acl_added_headers = NULL;
tree_node *acl_anchor = NULL;
+
uschar *acl_not_smtp = NULL;
#ifdef WITH_CONTENT_SCAN
uschar *acl_not_smtp_mime = NULL;
#endif
uschar *acl_not_smtp_start = NULL;
+
uschar *acl_smtp_auth = NULL;
uschar *acl_smtp_connect = NULL;
uschar *acl_smtp_data = NULL;
+#ifndef DISABLE_DKIM
+uschar *acl_smtp_dkim = NULL;
+#endif
uschar *acl_smtp_etrn = NULL;
uschar *acl_smtp_expn = NULL;
uschar *acl_smtp_helo = NULL;
#ifdef WITH_CONTENT_SCAN
uschar *acl_smtp_mime = NULL;
#endif
+uschar *acl_smtp_notquit = NULL;
uschar *acl_smtp_predata = NULL;
uschar *acl_smtp_quit = NULL;
uschar *acl_smtp_rcpt = NULL;
uschar *acl_smtp_starttls = NULL;
uschar *acl_smtp_vrfy = NULL;
+
BOOL acl_temp_details = FALSE;
tree_node *acl_var_c = NULL;
tree_node *acl_var_m = NULL;
US"MAIL",
US"PREDATA",
US"MIME",
+ US"DKIM",
US"DATA",
US"non-SMTP",
US"AUTH",
US"EHLO or HELO",
US"MAILAUTH",
US"non-SMTP-start",
+ US"NOTQUIT",
US"QUIT",
US"STARTTLS",
US"VRFY"
US"550", /* MAIL */
US"550", /* PREDATA */
US"550", /* MIME */
+ US"550", /* DKIM */
US"550", /* DATA */
US"0", /* not SMTP; not relevant */
US"503", /* AUTH */
US"550", /* HELO/EHLO */
US"0", /* MAILAUTH; not relevant */
US"0", /* not SMTP; not relevant */
+ US"0", /* NOTQUIT; not relevant */
US"0", /* QUIT; not relevant */
US"550", /* STARTTLS */
US"252" /* VRFY */
NULL, /* private options block pointer */
NULL, /* driver_name */
NULL, /* advertise_condition */
+ NULL, /* client_condition */
NULL, /* public_name */
NULL, /* set_id */
NULL, /* server_mail_auth_condition */
int callout_cache_positive_expire = 24*60*60;
int callout_cache_negative_expire = 2*60*60;
uschar *callout_random_local_part = US"$primary_hostname-$tod_epoch-testing";
-uschar *check_dns_names_pattern= US"(?i)^(?>(?(1)\\.|())[^\\W_](?>[a-z0-9/-]*[^\\W_])?)+$";
+uschar *check_dns_names_pattern= US"(?i)^(?>(?(1)\\.|())[^\\W](?>[a-z0-9/_-]*[^\\W])?)+(\\.?)$";
int check_log_inodes = 0;
int check_log_space = 0;
BOOL check_rfc2047_length = TRUE;
uschar *daemon_smtp_port = US"smtp";
int daemon_startup_retries = 9;
int daemon_startup_sleep = 30;
+
+#ifdef EXPERIMENTAL_DCC
+BOOL dcc_direct_add_header = FALSE;
+uschar *dcc_header = NULL;
+uschar *dcc_result = NULL;
+uschar *dccifd_address = US"/usr/local/dcc/var/dccifd";
+uschar *dccifd_options = US"header";
+#endif
+
BOOL debug_daemon = FALSE;
int debug_fd = -1;
FILE *debug_file = NULL;
int demime_ok = 0;
uschar *demime_reason = NULL;
#endif
+BOOL disable_callout_flush = FALSE;
BOOL disable_delay_flush = FALSE;
#ifdef ENABLE_DISABLE_FSYNC
BOOL disable_fsync = FALSE;
BOOL disable_ipv6 = FALSE;
BOOL disable_logging = FALSE;
-#ifdef EXPERIMENTAL_DOMAINKEYS
-uschar *dk_signing_domain = NULL;
-uschar *dk_signing_selector = NULL;
-int dk_do_verify = 0;
+#ifndef DISABLE_DKIM
+uschar *dkim_cur_signer = NULL;
+uschar *dkim_signers = NULL;
+uschar *dkim_signing_domain = NULL;
+uschar *dkim_signing_selector = NULL;
+uschar *dkim_verify_signers = US"$dkim_signers";
+BOOL dkim_collect_input = FALSE;
+BOOL dkim_disable_verify = FALSE;
#endif
uschar *dns_again_means_nonexist = NULL;
int dns_retrans = 0;
int dns_retry = 0;
uschar *dnslist_domain = NULL;
+uschar *dnslist_matched = NULL;
uschar *dnslist_text = NULL;
uschar *dnslist_value = NULL;
tree_node *domainlist_anchor = NULL;
BOOL dont_deliver = FALSE;
BOOL dot_ends = TRUE;
BOOL drop_cr = FALSE; /* No longer used */
+uschar *dsn_from = US DEFAULT_DSN_FROM;
BOOL enable_dollar_recipients = FALSE;
BOOL envelope_to_remove = TRUE;
uschar *extra_local_interfaces = NULL;
int fake_response = OK;
-uschar *fake_response_text = US"Your message has been rejected but is being kept for evaluation.\nIf it was a legitimate message, it may still be delivered to the target recipient(s).";
+uschar *fake_response_text = US"Your message has been rejected but is "
+ "being kept for evaluation.\nIf it was a "
+ "legitimate message, it may still be "
+ "delivered to the target recipient(s).";
int filter_n[FILTER_VARIABLE_COUNT];
BOOL filter_running = FALSE;
int filter_sn[FILTER_VARIABLE_COUNT];
#ifdef WITH_CONTENT_SCAN
uschar *malware_name = NULL; /* Virus Name */
#endif
+int max_received_linelength= 0;
int max_username_length = 0;
int message_age = 0;
uschar *message_body = NULL;
uschar *message_body_end = NULL;
+BOOL message_body_newlines = FALSE;
int message_body_size = 0;
int message_body_visible = 500;
int message_ended = END_NOTSTARTED;
BOOL queue_only = FALSE;
uschar *queue_only_file = NULL;
int queue_only_load = -1;
+BOOL queue_only_load_latch = TRUE;
BOOL queue_only_override = TRUE;
BOOL queue_only_policy = FALSE;
BOOL queue_run_first_delivery = FALSE;
that compilers are now clever, and share constant strings if they can.
Elsewhere in Exim the string "<" is used. The compiler optimization seems to
make use of the end of this string in order to save space. So the patching then
-wrecks this. We default this optimization by adding some additional characters
+wrecks this. We defeat this optimization by adding some additional characters
onto the end of the string. */
uschar *running_status = US">>>running<<<" "\0EXTRA";
BOOL smtp_etrn_serialize = TRUE;
int smtp_max_synprot_errors= 3;
int smtp_max_unknown_commands = 3;
+uschar *smtp_notquit_reason = NULL;
uschar *smtp_ratelimit_hosts = NULL;
uschar *smtp_ratelimit_mail = NULL;
uschar *smtp_ratelimit_rcpt = NULL;
uschar *spam_score_int = NULL;
#endif
#ifdef EXPERIMENTAL_SPF
+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;
BOOL system_filtering = FALSE;
BOOL tcp_nodelay = TRUE;
+#ifdef USE_TCP_WRAPPERS
+uschar *tcp_wrappers_daemon_name = US TCP_WRAPPERS_DAEMON_NAME;
+#endif
+int test_harness_load_avg = 0;
int thismessage_size_limit = 0;
int timeout_frozen_after = 0;
BOOL timestamps_utc = FALSE;
uschar *warnmsg_recipients = NULL;
BOOL write_rejectlog = TRUE;
-uschar *version_copyright = US"Copyright (c) University of Cambridge 2006";
+uschar *version_copyright = US"Copyright (c) University of Cambridge, 1995 - 2007";
uschar *version_date = US"?";
uschar *version_cnumber = US"????";
uschar *version_string = US"?";