[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 exim/exim-src/src acl.c globals.c globals.h smtp_in.c exim/exim-test/confs 0549 exim/exim-test/log 0549 exim/exim-test/scripts/0000-Ba
ph10 2007/01/30 11:45:20 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog NewStuff 
    exim-src/src         acl.c globals.c globals.h smtp_in.c 
  Added files:
    exim-test/confs      0549 
    exim-test/log        0549 
    exim-test/scripts/0000-Basic 0549 
    exim-test/stdout     0549 
  Log:
  Add control=no_pipelining.


  Revision  Changes    Path
  1.464     +2 -0      exim/exim-doc/doc-txt/ChangeLog
  1.131     +6 -0      exim/exim-doc/doc-txt/NewStuff
  1.69      +14 -2     exim/exim-src/src/acl.c
  1.65      +1 -0      exim/exim-src/src/globals.c
  1.46      +1 -0      exim/exim-src/src/globals.h
  1.53      +3 -1      exim/exim-src/src/smtp_in.c
  1.1       +26 -0     exim/exim-test/confs/0549 (new)
  1.1       +1 -0      exim/exim-test/log/0549 (new)
  1.1       +25 -0     exim/exim-test/scripts/0000-Basic/0549 (new)
  1.1       +30 -0     exim/exim-test/stdout/0549 (new)


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.463
  retrieving revision 1.464
  diff -u -r1.463 -r1.464
  --- ChangeLog    25 Jan 2007 15:51:28 -0000    1.463
  +++ ChangeLog    30 Jan 2007 11:45:20 -0000    1.464
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.463 2007/01/25 15:51:28 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.464 2007/01/30 11:45:20 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -59,6 +59,8 @@
         in the batch. While fixing this I discovered that the process information
         (output by running exiwhat) was not always getting set for -bs and -bS
         input. This is fixed, and it now also says "batched" for BSMTP.
  +
  +PH/11 Added control=no_pipelining.



Exim version 4.66

  Index: NewStuff
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
  retrieving revision 1.130
  retrieving revision 1.131
  diff -u -r1.130 -r1.131
  --- NewStuff    23 Jan 2007 14:34:02 -0000    1.130
  +++ NewStuff    30 Jan 2007 11:45:20 -0000    1.131
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.130 2007/01/23 14:34:02 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.131 2007/01/30 11:45:20 ph10 Exp $


   New Features in Exim
   --------------------
  @@ -196,6 +196,12 @@
       connections there actually are, because many other connections may come and
       go while a single connection is being processed. When a child process
       terminates, the daemon decrements the variable.
  +
  + 6. There's a new control called no_pipelining, which does what its name
  +    suggests. It turns off the advertising of the PIPELINING extension to SMTP.
  +    To be useful, this control must be obeyed before Exim sends its response to
  +    an EHLO command. Therefore, it should normally appear in an ACL controlled
  +    by acl_smtp_connect or acl_smtp_helo.



Version 4.66

  Index: acl.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/acl.c,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- acl.c    8 Jan 2007 10:50:17 -0000    1.68
  +++ acl.c    30 Jan 2007 11:45:20 -0000    1.69
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/acl.c,v 1.68 2007/01/08 10:50:17 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/acl.c,v 1.69 2007/01/30 11:45:20 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -186,7 +186,8 @@
     #endif
     CONTROL_FAKEDEFER,
     CONTROL_FAKEREJECT,
  -  CONTROL_NO_MULTILINE
  +  CONTROL_NO_MULTILINE,
  +  CONTROL_NO_PIPELINING
   };


   /* ACL control names; keep in step with the table above! This list is used for
  @@ -214,7 +215,10 @@
     #ifdef WITH_CONTENT_SCAN
     US"no_mbox_unspool",
     #endif
  -  US"no_multiline"
  +  US"fakedefer",
  +  US"fakereject",
  +  US"no_multiline",
  +  US"no_pipelining",
   };


   /* Flags to indicate for which conditions /modifiers a string expansion is done
  @@ -586,6 +590,9 @@
       (1<<ACL_WHERE_MIME)),


     (1<<ACL_WHERE_NOTSMTP)|                          /* no_multiline */
  +    (1<<ACL_WHERE_NOTSMTP_START),
  +
  +  (1<<ACL_WHERE_NOTSMTP)|                          /* no_pipelining */
       (1<<ACL_WHERE_NOTSMTP_START)
   };


  @@ -611,6 +618,7 @@
     { US"freeze",                  CONTROL_FREEZE, TRUE },
     { US"no_enforce_sync",         CONTROL_NO_ENFORCE_SYNC, FALSE },
     { US"no_multiline_responses",  CONTROL_NO_MULTILINE, FALSE },
  +  { US"no_pipelining",           CONTROL_NO_PIPELINING, FALSE },
     { US"queue_only",              CONTROL_QUEUE_ONLY, FALSE },
   #ifdef WITH_CONTENT_SCAN
     { US"no_mbox_unspool",         CONTROL_NO_MBOX_UNSPOOL, FALSE },
  @@ -2591,6 +2599,10 @@


         case CONTROL_NO_MULTILINE:
         no_multiline_responses = TRUE;
  +      break;
  +
  +      case CONTROL_NO_PIPELINING:
  +      pipelining_enable = FALSE;
         break;


         case CONTROL_FAKEDEFER:


  Index: globals.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/globals.c,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- globals.c    22 Jan 2007 16:29:54 -0000    1.64
  +++ globals.c    30 Jan 2007 11:45:20 -0000    1.65
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/globals.c,v 1.64 2007/01/22 16:29:54 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/globals.c,v 1.65 2007/01/30 11:45:20 ph10 Exp $ */


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


  Index: globals.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/globals.h,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- globals.h    22 Jan 2007 16:29:54 -0000    1.45
  +++ globals.h    30 Jan 2007 11:45:20 -0000    1.46
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/globals.h,v 1.45 2007/01/22 16:29:54 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/globals.h,v 1.46 2007/01/30 11:45:20 ph10 Exp $ */


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


  Index: smtp_in.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/smtp_in.c,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- smtp_in.c    23 Jan 2007 14:34:02 -0000    1.52
  +++ smtp_in.c    30 Jan 2007 11:45:20 -0000    1.53
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/smtp_in.c,v 1.52 2007/01/23 14:34:02 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/smtp_in.c,v 1.53 2007/01/30 11:45:20 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -1244,6 +1244,7 @@
   smtp_delay_mail = smtp_rlm_base;
   auth_advertised = FALSE;
   pipelining_advertised = FALSE;
  +pipelining_enable = TRUE;
   sync_cmd_limit = NON_SYNC_CMD_NON_PIPELINING;


   memset(sender_host_cache, 0, sizeof(sender_host_cache));
  @@ -2851,7 +2852,8 @@
         /* Exim is quite happy with pipelining, so let the other end know that
         it is safe to use it, unless advertising is disabled. */


  -      if (verify_check_host(&pipelining_advertise_hosts) == OK)
  +      if (pipelining_enable &&
  +          verify_check_host(&pipelining_advertise_hosts) == OK)
           {
           s = string_cat(s, &size, &ptr, smtp_code, 3);
           s = string_cat(s, &size, &ptr, US"-PIPELINING\r\n", 13);


Index: 0549
====================================================================
# Exim test configuration 0549

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_connect = check_connect


# ----- ACL -----

begin ACL

  check_connect:
    accept   hosts   = 127.0.0.1
             control = no_pipelining
    accept


# End

Index: 0549
====================================================================
1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225

Index: 0549
====================================================================
# no_pipelining
need_ipv4
#
exim -DSERVER=server -bd -oX PORT_D
****
client 127.0.0.1 PORT_D
??? 220
ehlo abcd
??? 250-
??? 250-
??? 250
quit
??? 221
****
client HOSTIPV4 PORT_D
??? 220
ehlo abcd
??? 250-
??? 250-
??? 250-
??? 250
quit
??? 221
****
killdaemon

Index: 0549
====================================================================
Connecting to 127.0.0.1 port 1225 ... connected
??? 220
<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
>>> ehlo abcd

??? 250-
<<< 250-myhost.test.ex Hello abcd [127.0.0.1]
??? 250-
<<< 250-SIZE 52428800
??? 250
<<< 250 HELP
>>> quit

??? 221
<<< 221 myhost.test.ex closing connection
End of script
Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
??? 220
<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
>>> ehlo abcd

??? 250-
<<< 250-myhost.test.ex Hello abcd [ip4.ip4.ip4.ip4]
??? 250-
<<< 250-SIZE 52428800
??? 250-
<<< 250-PIPELINING
??? 250
<<< 250 HELP
>>> quit

??? 221
<<< 221 myhost.test.ex closing connection
End of script