Flush SMTP output buffer before "delay" in an ACL; add control =
[exim.git] / src / src / globals.c
index 7c3f8e9f1011babe7971ad8b7f9c534a8d73f09d..b3bbd7faffe0f9c7f57bb22cd3af12bc258a6946 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/globals.c,v 1.59 2006/09/25 10:14:20 ph10 Exp $ */
+/* $Cambridge: exim/src/src/globals.c,v 1.68 2007/02/05 12:35:46 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2006 */
+/* Copyright (c) University of Cambridge 1995 - 2007 */
 /* See the file NOTICE for conditions of use and distribution. */
 
 /* All the global variables are defined together in this one module, so
@@ -38,6 +38,8 @@ optionlist optionlist_auths[] = {
                  (void *)(offsetof(auth_instance, public_name)) },
   { "server_advertise_condition", opt_stringptr | opt_public,
                  (void *)(offsetof(auth_instance, advertise_condition))},
+  { "server_condition", opt_stringptr | opt_public,
+                 (void *)(offsetof(auth_instance, server_condition)) },
   { "server_debug_print", opt_stringptr | opt_public,
                  (void *)(offsetof(auth_instance, server_debug_string)) },
   { "server_mail_auth_condition", opt_stringptr | opt_public,
@@ -107,6 +109,9 @@ uschar *tls_on_connect_ports   = NULL;
 uschar *tls_peerdn             = NULL;
 
 #ifdef SUPPORT_TLS
+uschar *gnutls_require_mac     = NULL;
+uschar *gnutls_require_kx      = NULL;
+uschar *gnutls_require_proto   = NULL;
 const pcre *regex_STARTTLS     = NULL;
 uschar *tls_advertise_hosts    = NULL;    /* This is deliberate */
 uschar *tls_certificate        = NULL;
@@ -325,6 +330,7 @@ auth_instance auth_defaults    = {
     NULL,                      /* set_id */
     NULL,                      /* server_mail_auth_condition */
     NULL,                      /* server_debug_string */
+    NULL,                      /* server_condition */
     FALSE,                     /* client */
     FALSE,                     /* server */
     FALSE                      /* advertised */
@@ -493,6 +499,10 @@ int     demime_errorlevel      = 0;
 int     demime_ok              = 0;
 uschar *demime_reason          = NULL;
 #endif
+BOOL    disable_delay_flush    = FALSE;
+#ifdef ENABLE_DISABLE_FSYNC
+BOOL    disable_fsync          = FALSE;
+#endif
 BOOL    disable_ipv6           = FALSE;
 BOOL    disable_logging        = FALSE;
 
@@ -659,6 +669,8 @@ top bit). They are never used in calls to log_write(), but are tested
 independently. This separation became necessary when the number of log
 selectors was getting close to filling a 32-bit word. */
 
+/* Note that this list must be in alphabetical order. */
+
 bit_table log_options[]        = {
   { US"acl_warn_skipped",             LX_acl_warn_skipped },
   { US"address_rewrite",              L_address_rewrite },
@@ -677,6 +689,7 @@ bit_table log_options[]        = {
   { US"incoming_port",                LX_incoming_port },
   { US"lost_incoming_connection",     L_lost_incoming_connection },
   { US"outgoing_port",                LX_outgoing_port },
+  { US"pid",                          LX_pid },
   { US"queue_run",                    L_queue_run },
   { US"queue_time",                   LX_queue_time },
   { US"queue_time_overall",           LX_queue_time_overall },
@@ -693,6 +706,7 @@ bit_table log_options[]        = {
   { US"smtp_confirmation",            LX_smtp_confirmation },
   { US"smtp_connection",              L_smtp_connection },
   { US"smtp_incomplete_transaction",  L_smtp_incomplete_transaction },
+  { US"smtp_no_mail",                 LX_smtp_no_mail },
   { US"smtp_protocol_error",          L_smtp_protocol_error },
   { US"smtp_syntax_error",            L_smtp_syntax_error },
   { US"subject",                      LX_subject },
@@ -780,6 +794,7 @@ BOOL    parse_found_group      = FALSE;
 uschar *percent_hack_domains   = NULL;
 uschar *pid_file_path          = US PID_FILE_PATH
                            "\0<--------------Space to patch pid_file_path->";
+BOOL    pipelining_enable      = TRUE;
 uschar *pipelining_advertise_hosts = US"*";
 BOOL    preserve_message_logs  = FALSE;
 uschar *primary_hostname       = NULL;
@@ -1020,6 +1035,8 @@ address_item *sender_verified_list  = NULL;
 address_item *sender_verified_failed = NULL;
 int     sender_verified_rc     = -1;
 BOOL    sender_verified_responded = FALSE;
+uschar *sending_ip_address     = NULL;
+int     sending_port           = -1;
 volatile  BOOL sigalrm_seen    = FALSE;
 uschar **sighup_argv           = NULL;
 int     smtp_accept_count      = 0;
@@ -1039,8 +1056,11 @@ uschar *smtp_banner            = US"$smtp_active_hostname ESMTP "
                              "\0<---------------Space to patch smtp_banner->";
 BOOL    smtp_batched_input     = FALSE;
 BOOL    smtp_check_spool_space = TRUE;
+int     smtp_ch_index          = 0;
 uschar *smtp_cmd_argument      = NULL;
 uschar *smtp_cmd_buffer        = NULL;
+time_t  smtp_connection_start  = 0;
+uschar  smtp_connection_had[SMTP_HBUFF_SIZE];
 int     smtp_connect_backlog   = 20;
 double  smtp_delay_mail        = 0.0;
 double  smtp_delay_rcpt        = 0.0;