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

Página Principal
Apagar esta mensagem
Responder a esta mensagem
Autor: Philip Hazel
Data:  
Para: exim-cvs
Assunto: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src globals.c macros.h exim/exim-src/src/transports smtp.c exim/exim-test-orig/AutoTest/confs 608 exim/exim-test-orig/AutoTest/l
ph10 2005/04/07 11:54:54 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         globals.c macros.h 
    exim-src/src/transports smtp.c 
  Added files:
    exim-test-orig/AutoTest/confs 608 
    exim-test-orig/AutoTest/log 608 
    exim-test-orig/AutoTest/scripts 608 
  Log:
  Change PH/12 for 4.50 fixed one bug and introduced another; if a host's
  IP address could not be found in an SMTP router, Exim went into a hard
  loop (unless it was the only host).


  Revision  Changes    Path
  1.122     +6 -0      exim/exim-doc/doc-txt/ChangeLog
  1.22      +0 -4      exim/exim-src/src/globals.c
  1.12      +8 -8      exim/exim-src/src/macros.h
  1.10      +8 -4      exim/exim-src/src/transports/smtp.c
  1.1       +34 -0     exim/exim-test-orig/AutoTest/confs/608 (new)
  1.1       +11 -0     exim/exim-test-orig/AutoTest/log/608 (new)
  1.1       +3 -0      exim/exim-test-orig/AutoTest/scripts/608 (new)


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.121
  retrieving revision 1.122
  diff -u -r1.121 -r1.122
  --- ChangeLog    7 Apr 2005 10:10:01 -0000    1.121
  +++ ChangeLog    7 Apr 2005 10:54:54 -0000    1.122
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.121 2005/04/07 10:10:01 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.122 2005/04/07 10:54:54 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -205,6 +205,12 @@
   PH/34 Change 4.50/80 broke Exim in that it could no longer handle cases where
         the uid or gid is negative. A case of a negative gid caused this to be
         noticed. The fix allows for either to be negative.
  +
  +PH/35 ACL_WHERE_MIME is now declared unconditionally, to avoid too much code
  +      clutter, but the tables that are indexed by ACL_WHERE_xxx values had been
  +      overlooked.
  +
  +PH/36 The change PH/12 above was broken. Fixed it.



A note about Exim versions 4.44 and 4.50

  Index: globals.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/globals.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- globals.c    4 Apr 2005 10:33:49 -0000    1.21
  +++ globals.c    7 Apr 2005 10:54:54 -0000    1.22
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/globals.c,v 1.21 2005/04/04 10:33:49 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/globals.c,v 1.22 2005/04/07 10:54:54 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -191,9 +191,7 @@
   uschar *acl_wherenames[]       = { US"RCPT",
                                      US"MAIL",
                                      US"PREDATA",
  -#ifdef WITH_CONTENT_SCAN
                                      US"MIME",
  -#endif
                                      US"DATA",
                                      US"non-SMTP",
                                      US"AUTH",
  @@ -210,9 +208,7 @@
   int     acl_wherecodes[]       = { 550,     /* RCPT */
                                      550,     /* MAIL */
                                      550,     /* PREDATA */
  -#ifdef WITH_CONTENT_SCAN
                                      550,     /* MIME */
  -#endif
                                      550,     /* DATA */
                                      0,       /* not SMTP; not relevant */
                                      503,     /* AUTH */


  Index: macros.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/macros.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- macros.h    22 Mar 2005 14:11:54 -0000    1.11
  +++ macros.h    7 Apr 2005 10:54:54 -0000    1.12
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/macros.h,v 1.11 2005/03/22 14:11:54 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/macros.h,v 1.12 2005/04/07 10:54:54 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -742,18 +742,18 @@
   /* Codes for the places from which ACLs can be called. These are cunningly
   ordered to make it easy to implement tests for certain ACLs when processing
   "control" modifiers, by means of a maximum "where" value. Do not modify this
  -order without checking carefully! Furthermore, remember to keep these in step
  -with the tables of names and response codes in globals.c. */
  +order without checking carefully!
  +
  +**** IMPORTANT***
  +****   Furthermore, remember to keep these in step with the tables
  +****   of names and response codes in globals.c.
  +**** IMPORTANT ****
  +*/


   enum { ACL_WHERE_RCPT,       /* Some controls are for RCPT only */
          ACL_WHERE_MAIL,       /* )                                           */
          ACL_WHERE_PREDATA,    /* ) There are several tests for "in message", */
  -                             /* ) implemented by <= WHERE_NOTSMTP           */
  -
  -/* Remove next line in case of removeing WITH_CONTENT_SCAN.
  -   ACL_WHERE_MIME is defined unconditionally to avoid clutter in acl.c */
  -       ACL_WHERE_MIME,       /* )                                           */
  -
  +       ACL_WHERE_MIME,       /* ) implemented by <= WHERE_NOTSMTP           */
          ACL_WHERE_DATA,       /* )                                           */
          ACL_WHERE_NOTSMTP,    /* )                                           */



  Index: smtp.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/transports/smtp.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- smtp.c    6 Apr 2005 15:26:52 -0000    1.9
  +++ smtp.c    7 Apr 2005 10:54:54 -0000    1.10
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/transports/smtp.c,v 1.9 2005/04/06 15:26:52 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/transports/smtp.c,v 1.10 2005/04/07 10:54:54 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -2175,6 +2175,12 @@
       uschar *retry_message_key = NULL;
       uschar *serialize_key = NULL;


  +    /* Default next host is next host. :-) But this can vary if the
  +    hosts_max_try limit is hit (see below). It may also be reset if a host
  +    address is looked up here (in case the host was multihomed). */
  +
  +    nexthost = host->next;
  +
       /* Set the flag requesting that this host be added to the waiting
       database if the delivery fails temporarily or if we are running with
       queue_smtp or a 2-stage queue run. This gets unset for certain
  @@ -2281,10 +2287,8 @@
         continue;      /* With next host */
         }


  -    /* The default next host is the next host. :-) But this can vary if the
  -    hosts_max_try limit is hit (see below). NOTE: we cannot put this setting
  -    earlier than this, because a multihomed host whose addresses are not looked
  -    up till just above will add to the host list. */
  +    /* Reset the default next host in case a multihomed host whose addresses
  +    are not looked up till just above added to the host list. */


       nexthost = host->next;



Index: 608
====================================================================
# Exim test configuration 608

# Macros are set externally in order to get the path
# of the Exim that is being tested, and the directory
# in which the test data lives.

exim_path = EXIM_PATH
primary_hostname = myhost.test.ex
spool_directory = DIR/spool

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



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

begin routers

  r1:
    driver = accept
    transport = t1



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

begin transports

  t1:
    driver = smtp
    hosts = 127.0.0.1 : non-exist.test.ex
    port = 1225 
    allow_localhost 


# End

Index: 608
====================================================================
1999-03-02 09:44:33 10HmaX-0005vi-00 <= ph10@??? U=ph10 P=local S=267
1999-03-02 09:44:33 10HmaX-0005vi-00 127.0.0.1 [127.0.0.1]: Connection refused
1999-03-02 09:44:33 10HmaX-0005vi-00 == ph10@??? R=r1 T=t1 defer (-32): failed to lookup IP address for non-exist.test.ex
1999-03-02 09:44:33 10HmaX-0005vi-00 ** ph10@???: retry timeout exceeded
1999-03-02 09:44:33 10HmaY-0005vi-00 <= <> R=10HmaX-0005vi-00 U=exim P=local S=1129
1999-03-02 09:44:33 10HmaY-0005vi-00 127.0.0.1 [127.0.0.1]: Connection refused
1999-03-02 09:44:33 10HmaY-0005vi-00 == ph10@??? R=r1 T=t1 defer (-32): failed to lookup IP address for non-exist.test.ex
1999-03-02 09:44:33 10HmaY-0005vi-00 ** ph10@???: retry timeout exceeded
1999-03-02 09:44:33 10HmaY-0005vi-00 ph10@???: error ignored
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed

Index: 608
====================================================================
0 Missing IP addresses for 2nd host in smtp router
exim -odi ph10
****