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

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Philip Hazel
Datum:  
To: exim-cvs
Betreff: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog exim/exim-src/src deliver.c
ph10 2005/04/05 16:47:51 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog 
    exim-src/src         deliver.c 
  Log:
  Change 4.51/PH/05 wasn't implemented quite correctly. I think I've now
  sorted it.


  Revision  Changes    Path
  1.111     +1 -1      exim/exim-doc/doc-txt/ChangeLog
  1.10      +14 -11    exim/exim-src/src/deliver.c


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.110
  retrieving revision 1.111
  diff -u -r1.110 -r1.111
  --- ChangeLog    5 Apr 2005 14:33:27 -0000    1.110
  +++ ChangeLog    5 Apr 2005 15:47:50 -0000    1.111
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.110 2005/04/05 14:33:27 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.111 2005/04/05 15:47:50 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -38,7 +38,7 @@
         "previously delivered" was not happening when checking to see if an
         address could be batched with a previous (undelivered) one; under
         certain circumstances this could lead to multiple deliveries to the same
  -      address. A one-line patch to add the appropriate test fixes the bug.
  +      address.


   PH/05 Renamed the macro SOCKLEN_T as EXIM_SOCKLEN_T because AIX uses SOCKLEN_T
         in its include files, and this causes problems building Exim.


  Index: deliver.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/deliver.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- deliver.c    22 Mar 2005 14:50:10 -0000    1.9
  +++ deliver.c    5 Apr 2005 15:47:50 -0000    1.10
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/deliver.c,v 1.9 2005/03/22 14:50:10 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/deliver.c,v 1.10 2005/04/05 15:47:50 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -1449,18 +1449,21 @@
   *************************************************/


   /* Check that this base address hasn't previously been delivered to its routed
  -transport. The check is necessary at delivery time in order to handle homonymic
  -addresses correctly in cases where the pattern of redirection changes between
  -delivery attempts (so the unique fields change). Non-homonymic previous
  -delivery is detected earlier, at routing time (which saves unnecessary
  -routing).
  +transport. If it has been delivered, mark it done. The check is necessary at
  +delivery time in order to handle homonymic addresses correctly in cases where
  +the pattern of redirection changes between delivery attempts (so the unique
  +fields change). Non-homonymic previous delivery is detected earlier, at routing
  +time (which saves unnecessary routing).
  +
  +Arguments:
  +  addr      the address item
  +  testing   TRUE if testing wanted only, without side effects


  -Argument:   the address item
   Returns:    TRUE if previously delivered by the transport
   */


   static BOOL
  -previously_transported(address_item *addr)
  +previously_transported(address_item *addr, BOOL testing)
   {
   (void)string_format(big_buffer, big_buffer_size, "%s/%s",
     addr->unique + (testflag(addr, af_homonym)? 3:0), addr->transport->name);
  @@ -1470,7 +1473,7 @@
     DEBUG(D_deliver|D_route|D_transport)
       debug_printf("%s was previously delivered (%s transport): discarded\n",
       addr->address, addr->transport->name);
  -  child_done(addr, tod_stamp(tod_log));
  +  if (!testing) child_done(addr, tod_stamp(tod_log));
     return TRUE;
     }


  @@ -2057,7 +2060,7 @@
     attempts. Non-homonymic previous delivery is detected earlier, at routing
     time. */


- if (previously_transported(addr)) continue;
+ if (previously_transported(addr, FALSE)) continue;

     /* There are weird cases where logging is disabled */


  @@ -2112,7 +2115,7 @@
         {
         BOOL ok =
           tp == next->transport &&
  -        !previously_transported(next) &&
  +        !previously_transported(next, TRUE) &&
           (!uses_lp  || Ustrcmp(next->local_part, addr->local_part) == 0) &&
           (!uses_dom || Ustrcmp(next->domain, addr->domain) == 0) &&
           same_strings(next->p.errors_address, addr->p.errors_address) &&
  @@ -3390,7 +3393,7 @@
     attempts. Non-homonymic previous delivery is detected earlier, at routing
     time. */


- if (previously_transported(addr)) continue;
+ if (previously_transported(addr, FALSE)) continue;

     /* Force failure if the message is too big. */