[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 ACKNOWLEDGMENTS exim/exim-src/src readconf.c retry.c
ph10 2005/09/19 12:56:11 BST

  Modified files:
    exim-doc/doc-txt     ChangeLog NewStuff 
    exim-src             ACKNOWLEDGMENTS 
    exim-src/src         readconf.c retry.c 
  Log:
  Michael Haardt's randomized retry stuff, using the new letter "H".


  Revision  Changes    Path
  1.236     +3 -0      exim/exim-doc/doc-txt/ChangeLog
  1.72      +10 -0     exim/exim-doc/doc-txt/NewStuff
  1.35      +2 -1      exim/exim-src/ACKNOWLEDGMENTS
  1.13      +2 -1      exim/exim-src/src/readconf.c
  1.4       +12 -3     exim/exim-src/src/retry.c


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.235
  retrieving revision 1.236
  diff -u -r1.235 -r1.236
  --- ChangeLog    19 Sep 2005 09:41:37 -0000    1.235
  +++ ChangeLog    19 Sep 2005 11:56:11 -0000    1.236
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.235 2005/09/19 09:41:37 fanf2 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.236 2005/09/19 11:56:11 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -206,6 +206,9 @@
   TF/06 The fix for widen_domains has also been applied to qualify_single and
         search_parents which are the other dnslookup options that can cause
         header rewrites.
  +
  +PH/49 Michael Haardt's randomized retrying, but as a separate retry parameter
  +      type ("H").



Exim version 4.52

  Index: NewStuff
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
  retrieving revision 1.71
  retrieving revision 1.72
  diff -u -r1.71 -r1.72
  --- NewStuff    15 Sep 2005 12:22:41 -0000    1.71
  +++ NewStuff    19 Sep 2005 11:56:11 -0000    1.72
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.71 2005/09/15 12:22:41 fanf2 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.72 2005/09/19 11:56:11 ph10 Exp $


   New Features in Exim
   --------------------
  @@ -154,6 +154,16 @@
   TF/01 There's a new script in util/ratelimit.pl which extracts sending
         rates from log files, to assist with choosing appropriate settings
         when deploying the ratelimit ACL condition.
  +
  +PH/13 A new letter, "H", is available in retry parameter sets. It is similar
  +      to "G" (geometric increasing time intervals), except that the interval
  +      before the next retry is randomized. Each time, the previous interval is
  +      multiplied by the factor in order to get a maximum for the next interval.
  +      The mininum interval is the first argument of the parameter, and an
  +      actual interval is chosen randomly between them. Such a rule has been
  +      found to be helpful in cluster configurations when all the members of the
  +      cluster restart at once, and may synchronize their queue processing
  +      times.



Exim version 4.52

  Index: ACKNOWLEDGMENTS
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/ACKNOWLEDGMENTS,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- ACKNOWLEDGMENTS    12 Sep 2005 13:50:03 -0000    1.34
  +++ ACKNOWLEDGMENTS    19 Sep 2005 11:56:11 -0000    1.35
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.34 2005/09/12 13:50:03 ph10 Exp $
  +$Cambridge: exim/exim-src/ACKNOWLEDGMENTS,v 1.35 2005/09/19 11:56:11 ph10 Exp $


EXIM ACKNOWLEDGEMENTS

@@ -20,7 +20,7 @@
Philip Hazel

Lists created: 20 November 2002
-Last updated: 12 September 2005
+Last updated: 19 September 2005


   THE OLD LIST
  @@ -146,6 +146,7 @@
                               continued maintenance of same
                             Patch for faster sort algorithm in queue.c
                             Patch for LDAP timeout handling
  +                            ... and several more
   Thomas Hager              Patch for saslauthd crash bug
   Richard Hall              Fix for file descriptor leak in redirection
   Steve Haslam              Lots of stuff, including


  Index: readconf.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/readconf.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- readconf.c    8 Aug 2005 10:48:27 -0000    1.12
  +++ readconf.c    19 Sep 2005 11:56:11 -0000    1.13
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/readconf.c,v 1.12 2005/08/08 10:48:27 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/readconf.c,v 1.13 2005/09/19 11:56:11 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -3554,6 +3554,7 @@
         break;


         case 'G':   /* Geometrically increasing intervals */
  +      case 'H':   /* Ditto, but with randomness */
         rule->p1 = retry_arg(&p, 0);
         rule->p2 = retry_arg(&p, 1);
         break;
  @@ -3564,7 +3565,7 @@
         }


       if (rule->timeout <= 0 || rule->p1 <= 0 ||
  -          (rule->rule == 'G' && rule->p2 < 1000))
  +          (rule->rule != 'F' && rule->p2 < 1000))
         log_write(0, LOG_PANIC_DIE|LOG_CONFIG_IN,
           "bad parameters for retry rule");



  Index: retry.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/retry.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- retry.c    29 Jun 2005 14:17:01 -0000    1.3
  +++ retry.c    19 Sep 2005 11:56:11 -0000    1.4
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/retry.c,v 1.3 2005/06/29 14:17:01 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/retry.c,v 1.4 2005/09/19 11:56:11 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -739,15 +739,24 @@
           if (rule == NULL) next_try = now; else
             {
             if (rule->rule == 'F') next_try = now + rule->p1;
  -          else  /* assume rule = 'G' */
  +          else  /* rule = 'G' or 'H' */
               {
               int last_predicted_gap =
                 retry_record->next_try - retry_record->last_try;
               int last_actual_gap = now - retry_record->last_try;
               int lastgap = (last_predicted_gap < last_actual_gap)?
                 last_predicted_gap : last_actual_gap;
  -            next_try = now + ((lastgap < rule->p1)? rule->p1 :
  -               (lastgap * rule->p2)/1000);
  +            int next_gap = (lastgap * rule->p2)/1000;
  +            if (rule->rule == 'G')
  +              {
  +              next_try = now + ((lastgap < rule->p1)? rule->p1 : next_gap);
  +              }
  +            else  /* The 'H' rule */
  +              {
  +              next_try = now + rule->p1;
  +              if (next_gap > rule->p1)
  +                next_try += random_number(next_gap - rule->p1);
  +              }
               }
             }