[exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog NewSt…

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: exim-cvs
Subject: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog NewStuff OptionLists.txt exim/exim-src/src daemon.c exim.c expand.c globals.c globals.h macros.h readconf.c exim/exim-test/confs 0160 0561 exi
ph10 2007/06/27 12:01:52 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog NewStuff OptionLists.txt 
    exim-src/src         daemon.c exim.c expand.c globals.c 
                         globals.h macros.h readconf.c 
    exim-test/confs      0160 
  Added files:
    exim-test/confs      0561 
    exim-test/log        0561 
    exim-test/scripts/0000-Basic 0561 
    exim-test/stderr     0561 
    exim-test/stdout     0561 
  Log:
  Add queue_only_load_latch.


  Revision  Changes    Path
  1.520     +2 -0      exim/exim-doc/doc-txt/ChangeLog
  1.154     +5 -0      exim/exim-doc/doc-txt/NewStuff
  1.33      +2 -0      exim/exim-doc/doc-txt/OptionLists.txt
  1.24      +36 -22    exim/exim-src/src/daemon.c
  1.57      +34 -24    exim/exim-src/src/exim.c
  1.88      +1 -1      exim/exim-src/src/expand.c
  1.76      +3 -1      exim/exim-src/src/globals.c
  1.56      +2 -0      exim/exim-src/src/globals.h
  1.35      +6 -0      exim/exim-src/src/macros.h
  1.30      +1 -0      exim/exim-src/src/readconf.c
  1.2       +1 -1      exim/exim-test/confs/0160
  1.1       +42 -0     exim/exim-test/confs/0561 (new)
  1.1       +30 -0     exim/exim-test/log/0561 (new)
  1.1       +43 -0     exim/exim-test/scripts/0000-Basic/0561 (new)
  1.1       +2 -0      exim/exim-test/stderr/0561 (new)
  1.1       +20 -0     exim/exim-test/stdout/0561 (new)


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.519
  retrieving revision 1.520
  diff -u -r1.519 -r1.520
  --- ChangeLog    26 Jun 2007 11:16:54 -0000    1.519
  +++ ChangeLog    27 Jun 2007 11:01:51 -0000    1.520
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.519 2007/06/26 11:16:54 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.520 2007/06/27 11:01:51 ph10 Exp $


Change log file for Exim from version 4.21
-------------------------------------------
@@ -73,6 +73,8 @@

   PH/13 Installed PCRE version 7.2. This needed some changes because of the new
         way in which PCRE > 7.0 is built.
  +
  +PH/14 Implemented queue_only_load_latch.



Exim version 4.67

  Index: NewStuff
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
  retrieving revision 1.153
  retrieving revision 1.154
  diff -u -r1.153 -r1.154
  --- NewStuff    26 Jun 2007 09:23:34 -0000    1.153
  +++ NewStuff    27 Jun 2007 11:01:51 -0000    1.154
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.153 2007/06/26 09:23:34 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.154 2007/06/27 11:01:51 ph10 Exp $


   New Features in Exim
   --------------------
  @@ -81,6 +81,11 @@
    7. Host lists can now include +ignore_defer and +include_defer, analagous to
       +ignore_unknown and +include_unknown. These options should be used with
       care, probably only in non-critical host lists such as whitelists.
  +
  + 8. There's a new option called queue_only_load_latch, which defaults true.
  +    If set false when queue_only_load is greater than zero, Exim re-evaluates
  +    the load for each incoming message in an SMTP session. Otherwise, once one
  +    message is queued, the remainder are also.



Version 4.67

  Index: OptionLists.txt
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/OptionLists.txt,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- OptionLists.txt    11 Apr 2007 15:26:10 -0000    1.32
  +++ OptionLists.txt    27 Jun 2007 11:01:51 -0000    1.33
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.32 2007/04/11 15:26:10 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.33 2007/06/27 11:01:51 ph10 Exp $


   LISTS OF EXIM OPTIONS
   ---------------------
  @@ -126,6 +126,7 @@
   check_string                         string          "From "       appendfile        3.03
                                                        unset         pipe              3.03
   check_srv                            string*         unset         dnslookup         4.31
  +client_condition                     string*         unset         authenticators    4.68
   client_ignore_invalid_base64         boolean         false         plaintext         4.61
   client_name                          string*         +             cram_md5          3.10
   client_secret                        string*         unset         cram_md5          3.10
  @@ -398,6 +399,7 @@
   queue_only                           boolean         false         main
   queue_only_file                      string          unset         main              2.05
   queue_only_load                      fixed-point     unset         main
  +queue_only_load_latch                boolean         true          main              4.68
   queue_only_override                  boolean         true          main              4.21
   queue_run_in_order                   boolean         false         main              1.70
   queue_run_max                        integer         5             main


  Index: daemon.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/daemon.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- daemon.c    14 Mar 2007 12:15:56 -0000    1.23
  +++ daemon.c    27 Jun 2007 11:01:51 -0000    1.24
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/daemon.c,v 1.23 2007/03/14 12:15:56 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/daemon.c,v 1.24 2007/06/27 11:01:51 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -241,7 +241,7 @@


   if (smtp_load_reserve >= 0)
     {
  -  load_average = os_getloadavg();
  +  load_average = OS_GETLOADAVG();
     if (smtp_reserve_hosts == NULL && load_average > smtp_load_reserve)
       {
       DEBUG(D_any) debug_printf("rejecting SMTP connection: load average = %.2f\n",
  @@ -365,6 +365,7 @@
     int old_pool = store_pool;
     int save_debug_selector = debug_selector;
     BOOL local_queue_only;
  +  BOOL session_local_queue_only;
     #ifdef SA_NOCLDWAIT
     struct sigaction act;
     #endif
  @@ -413,7 +414,7 @@
     /* Initialize the queueing flags */


     queue_check_only();
  -  local_queue_only = queue_only;
  +  session_local_queue_only = queue_only;


     /* Close the listening sockets, and set the SIGCHLD handler to SIG_IGN.
     We also attempt to set things up so that children are automatically reaped,
  @@ -457,13 +458,15 @@
     if (debug_daemon) debug_selector = 0;


     /* If there are too many child processes for immediate delivery,
  -  set the local_queue_only flag, which is initialized from the
  +  set the session_local_queue_only flag, which is initialized from the
     configured value and may therefore already be TRUE. Leave logging
  -  till later so it will have a message id attached. */
  +  till later so it will have a message id attached. Note that there is no
  +  possibility of re-calculating this per-message, because the value of
  +  smtp_accept_count does not change in this subprocess. */


     if (smtp_accept_queue > 0 && smtp_accept_count > smtp_accept_queue)
       {
  -    local_queue_only = TRUE;
  +    session_local_queue_only = TRUE;
       queue_only_reason = 1;
       }


  @@ -550,26 +553,37 @@
       store_reset(reset_point);


       /* If queue_only is set or if there are too many incoming connections in
  -    existence, local_queue_only will be TRUE. If it is not, check whether we
  -    have received too many messages in this session for immediate delivery. If
  -    not, and queue_only_load is set, check that the load average is below it.
  -    Note that, once set, local_queue_only remains set for any subsequent
  -    messages on the same SMTP connection. This is a deliberate choice; even
  -    though the load average may fall, it doesn't seem right to deliver later
  -    messages on the same call when not delivering earlier ones. */
  +    existence, session_local_queue_only will be TRUE. If it is not, check
  +    whether we have received too many messages in this session for immediate
  +    delivery. */
  +
  +    if (!session_local_queue_only &&
  +        smtp_accept_queue_per_connection > 0 &&
  +        receive_messagecount > smtp_accept_queue_per_connection)
  +      {
  +      session_local_queue_only = TRUE;
  +      queue_only_reason = 2;
  +      }
  +
  +    /* Initialize local_queue_only from session_local_queue_only. If it is not
  +    true, and queue_only_load is set, check that the load average is below it.
  +    If local_queue_only is set by this means, we also set if for the session if
  +    queue_only_load_latch is true (the default). This means that, once set,
  +    local_queue_only remains set for any subsequent messages on the same SMTP
  +    connection. This is a deliberate choice; even though the load average may
  +    fall, it doesn't seem right to deliver later messages on the same call when
  +    not delivering earlier ones. However, the are special circumstances such as
  +    very long-lived connections from scanning appliances where this is not the
  +    best strategy. In such cases, queue_only_load_latch should be set false. */


  -    if (!local_queue_only)
  +    local_queue_only = session_local_queue_only;
  +    if (!local_queue_only && queue_only_load >= 0)
         {
  -      if (smtp_accept_queue_per_connection > 0 &&
  -          receive_messagecount > smtp_accept_queue_per_connection)
  -        {
  -        local_queue_only = TRUE;
  -        queue_only_reason = 2;
  -        }
  -      else if (queue_only_load >= 0)
  +      local_queue_only = (load_average = OS_GETLOADAVG()) > queue_only_load;
  +      if (local_queue_only)
           {
  -        local_queue_only = (load_average = os_getloadavg()) > queue_only_load;
  -        if (local_queue_only) queue_only_reason = 3;
  +        queue_only_reason = 3;
  +        if (queue_only_load_latch) session_local_queue_only = TRUE;
           }
         }



  Index: exim.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/exim.c,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- exim.c    19 Jun 2007 14:41:31 -0000    1.56
  +++ exim.c    27 Jun 2007 11:01:51 -0000    1.57
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/exim.c,v 1.56 2007/06/19 14:41:31 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/exim.c,v 1.57 2007/06/27 11:01:51 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -1291,6 +1291,7 @@
   BOOL queue_only_set = FALSE;
   BOOL receiving_message = TRUE;
   BOOL sender_ident_set = FALSE;
  +BOOL session_local_queue_only;
   BOOL unprivileged;
   BOOL removed_privilege = FALSE;
   BOOL verify_address_mode = FALSE;
  @@ -3643,7 +3644,7 @@
           (is_inetd && smtp_load_reserve >= 0)
         ))
     {
  -  load_average = os_getloadavg();
  +  load_average = OS_GETLOADAVG();
     }
   #endif


  @@ -4528,11 +4529,11 @@
       sender_address);
     }


-/* Initialize the local_queue-only flag (this will be ignored if mua_wrapper is
-set) */
+/* Initialize the session_local_queue-only flag (this will be ignored if
+mua_wrapper is set) */

queue_check_only();
-local_queue_only = queue_only;
+session_local_queue_only = queue_only;

   /* For non-SMTP and for batched SMTP input, check that there is enough space on
   the spool if so configured. On failure, we must not attempt to send an error
  @@ -4891,27 +4892,36 @@
       }


     /* Else act on the result of message reception. We should not get here unless
  -  message_id[0] is non-zero. If queue_only is set, local_queue_only will be
  -  TRUE. If it is not, check on the number of messages received in this
  -  connection. If that's OK and queue_only_load is set, check that the load
  -  average is below it. If it is not, set local_queue_only TRUE. Note that it
  -  then remains this way for any subsequent messages on the same SMTP connection.
  -  This is a deliberate choice; even though the load average may fall, it
  -  doesn't seem right to deliver later messages on the same call when not
  -  delivering earlier ones. */
  -
  -  if (!local_queue_only)
  -    {
  -    if (smtp_accept_queue_per_connection > 0 &&
  -        receive_messagecount > smtp_accept_queue_per_connection)
  -      {
  -      local_queue_only = TRUE;
  -      queue_only_reason = 2;
  -      }
  -    else if (queue_only_load >= 0)
  +  message_id[0] is non-zero. If queue_only is set, session_local_queue_only
  +  will be TRUE. If it is not, check on the number of messages received in this
  +  connection. */
  +
  +  if (!session_local_queue_only &&
  +      smtp_accept_queue_per_connection > 0 &&
  +      receive_messagecount > smtp_accept_queue_per_connection)
  +    {
  +    session_local_queue_only = TRUE;
  +    queue_only_reason = 2;
  +    }
  +
  +  /* Initialize local_queue_only from session_local_queue_only. If it is false,
  +  and queue_only_load is set, check that the load average is below it. If it is
  +  not, set local_queue_only TRUE. If queue_only_load_latch is true (the
  +  default), we put the whole session into queue_only mode. It then remains this
  +  way for any subsequent messages on the same SMTP connection. This is a
  +  deliberate choice; even though the load average may fall, it doesn't seem
  +  right to deliver later messages on the same call when not delivering earlier
  +  ones. However, there are odd cases where this is not wanted, so this can be
  +  changed by setting queue_only_load_latch false. */
  +
  +  local_queue_only = session_local_queue_only;
  +  if (!local_queue_only && queue_only_load >= 0)
  +    {
  +    local_queue_only = (load_average = OS_GETLOADAVG()) > queue_only_load;
  +    if (local_queue_only)
         {
  -      local_queue_only = (load_average = os_getloadavg()) > queue_only_load;
  -      if (local_queue_only) queue_only_reason = 3;
  +      queue_only_reason = 3;
  +      if (queue_only_load_latch) session_local_queue_only = TRUE;
         }
       }



  Index: expand.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/expand.c,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- expand.c    22 Jun 2007 14:38:58 -0000    1.87
  +++ expand.c    27 Jun 2007 11:01:51 -0000    1.88
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/expand.c,v 1.87 2007/06/22 14:38:58 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/expand.c,v 1.88 2007/06/27 11:01:51 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -1446,7 +1446,7 @@
       return var_buffer;


       case vtype_load_avg:
  -    sprintf(CS var_buffer, "%d", os_getloadavg()); /* load_average */
  +    sprintf(CS var_buffer, "%d", OS_GETLOADAVG()); /* load_average */
       return var_buffer;


       case vtype_host_lookup:                    /* Lookup if not done so */


  Index: globals.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/globals.c,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- globals.c    22 Jun 2007 14:38:58 -0000    1.75
  +++ globals.c    27 Jun 2007 11:01:52 -0000    1.76
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/globals.c,v 1.75 2007/06/22 14:38:58 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/globals.c,v 1.76 2007/06/27 11:01:52 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -828,6 +828,7 @@
   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;
  @@ -1006,7 +1007,7 @@
   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";
  @@ -1163,6 +1164,7 @@
   BOOL    system_filtering       = FALSE;


   BOOL    tcp_nodelay            = TRUE;
  +int     test_harness_load_avg  = 0;
   int     thismessage_size_limit = 0;
   int     timeout_frozen_after   = 0;
   BOOL    timestamps_utc         = FALSE;


  Index: globals.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/globals.h,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- globals.h    22 Jun 2007 14:38:58 -0000    1.55
  +++ globals.h    27 Jun 2007 11:01:52 -0000    1.56
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/globals.h,v 1.55 2007/06/22 14:38:58 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/globals.h,v 1.56 2007/06/27 11:01:52 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -527,6 +527,7 @@
   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 */
  @@ -735,6 +736,7 @@
   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 */


  Index: macros.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/macros.h,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- macros.h    19 Jun 2007 14:41:31 -0000    1.34
  +++ macros.h    27 Jun 2007 11:01:52 -0000    1.35
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/macros.h,v 1.34 2007/06/19 14:41:31 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/macros.h,v 1.35 2007/06/27 11:01:52 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -13,6 +13,12 @@


#define mac_string(s) # s
#define mac_expanded_string(s) mac_string(s)
+
+
+/* When running in the test harness, the load average is fudged. */
+
+#define OS_GETLOADAVG() \
+ (running_in_test_harness? (test_harness_load_avg += 10) : os_getloadavg())


/* The address_item structure has a word full of 1-bit flags. These macros

  Index: readconf.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- readconf.c    6 Feb 2007 11:11:40 -0000    1.29
  +++ readconf.c    27 Jun 2007 11:01:52 -0000    1.30
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/readconf.c,v 1.29 2007/02/06 11:11:40 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/readconf.c,v 1.30 2007/06/27 11:01:52 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -302,6 +302,7 @@
     { "queue_only",               opt_bool,        &queue_only },
     { "queue_only_file",          opt_stringptr,   &queue_only_file },
     { "queue_only_load",          opt_fixed,       &queue_only_load },
  +  { "queue_only_load_latch",    opt_bool,        &queue_only_load_latch },
     { "queue_only_override",      opt_bool,        &queue_only_override },
     { "queue_run_in_order",       opt_bool,        &queue_run_in_order },
     { "queue_run_max",            opt_int,         &queue_run_max },


Index: 0561
====================================================================
# Exim test configuration 0561

QOLL=true

exim_path = EXIM_PATH
host_lookup_order = bydns
primary_hostname = myhost.test.ex
rfc1413_query_timeout = 0s
spool_directory = DIR/spool
log_file_path = DIR/spool/log/%slog
gecos_pattern = ""
gecos_name = CALLER_NAME

# ----- Main settings -----

acl_smtp_rcpt = accept

queue_only_load = 0.001
queue_only_load_latch = QOLL
queue_run_in_order


# ----- Routers -----

begin routers

  r1:
    driver = manualroute
    route_data = 127.0.0.1
    self = send
    transport = t1



# ----- Transports -----

begin transports

  t1:
    driver = smtp
    port = PORT_D


# End

  Index: 0160
  ===================================================================
  RCS file: /home/cvs/exim/exim-test/confs/0160,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- 0160    7 Feb 2006 10:34:25 -0000    1.1
  +++ 0160    27 Jun 2007 11:01:52 -0000    1.2
  @@ -43,7 +43,7 @@


begin retry

-* * F,1s,1s
+* * F,2s,1s


# End

Index: 0561
====================================================================
1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 10HmaX-0005vi-00 no immediate delivery: load average 0.01
1999-03-02 09:44:33 10HmaY-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 10HmaY-0005vi-00 no immediate delivery: load average 0.01
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
1999-03-02 09:44:33 Start queue run: pid=pppp -qq
1999-03-02 09:44:33 10HmaZ-0005vi-00 <= CALLER@??? H=localhost (myhost.test.ex) [127.0.0.1] P=esmtp S=sss id=E10HmaX-0005vi-00@???
1999-03-02 09:44:33 10HmaZ-0005vi-00 no immediate delivery: load average 0.01
1999-03-02 09:44:33 10HmaX-0005vi-00 => userx@??? R=r1 T=t1 H=127.0.0.1 [127.0.0.1]
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
1999-03-02 09:44:33 10HmbA-0005vi-00 <= CALLER@??? H=localhost (myhost.test.ex) [127.0.0.1] P=esmtp S=sss id=E10HmaY-0005vi-00@???
1999-03-02 09:44:33 10HmbA-0005vi-00 no immediate delivery: load average 0.01
1999-03-02 09:44:33 10HmaY-0005vi-00 => usery@??? R=r1 T=t1 H=127.0.0.1 [127.0.0.1]*
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
1999-03-02 09:44:33 End queue run: pid=pppp -qq
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
1999-03-02 09:44:33 Start queue run: pid=pppp -qq
1999-03-02 09:44:33 10HmbB-0005vi-00 <= CALLER@??? H=localhost (myhost.test.ex) [127.0.0.1] P=esmtp S=sss id=E10HmaX-0005vi-00@???
1999-03-02 09:44:33 10HmbB-0005vi-00 no immediate delivery: load average 0.01
1999-03-02 09:44:33 10HmaZ-0005vi-00 => userx@??? R=r1 T=t1 H=127.0.0.1 [127.0.0.1]
1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
1999-03-02 09:44:33 10HmbC-0005vi-00 <= CALLER@??? H=localhost (myhost.test.ex) [127.0.0.1] P=esmtp S=sss id=E10HmaY-0005vi-00@???
1999-03-02 09:44:33 10HmbC-0005vi-00 no immediate delivery: load average 0.02
1999-03-02 09:44:33 10HmbA-0005vi-00 => usery@??? R=r1 T=t1 H=127.0.0.1 [127.0.0.1]*
1999-03-02 09:44:33 10HmbA-0005vi-00 Completed
1999-03-02 09:44:33 End queue run: pid=pppp -qq
1999-03-02 09:44:33 10HmbD-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 10HmbD-0005vi-00 no immediate delivery: load average 0.01
1999-03-02 09:44:33 10HmbE-0005vi-00 <= CALLER@??? U=CALLER P=local-smtp S=sss
1999-03-02 09:44:33 10HmbE-0005vi-00 no immediate delivery: load average 0.02

Index: 0561
====================================================================
# queue_only_load and queue_only_load_latch
need_ipv4
#
exim -bs
mail from:<>
rcpt to:<userx@???>
data
Message 1.
.
mail from:<>
rcpt to:<usery@???>
data
Message 2.
.
quit
****
exim -DSERVER=server -bd -oX PORT_D
****
exim -qq
****
sleep 1
killdaemon
exim -DQOLL=false -DSERVER=server -bd -oX PORT_D
****
exim -qq
****
sleep 1
killdaemon
#
exim -bs -DQOLL=false
mail from:<>
rcpt to:<userx@???>
data
Message 3.
.
mail from:<>
rcpt to:<usery@???>
data
Message 4.
.
quit
****
no_msglog_check

Index: 0561
====================================================================

******** SERVER ********

Index: 0561
====================================================================
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
250 OK id=10HmaX-0005vi-00
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
250 OK id=10HmaY-0005vi-00
221 myhost.test.ex closing connection
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
250 OK id=10HmbD-0005vi-00
250 OK
250 Accepted
354 Enter message, ending with "." on a line by itself
250 OK id=10HmbE-0005vi-00
221 myhost.test.ex closing connection