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

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Philip Hazel
Date:  
À: exim-cvs
Sujet: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog NewStuff exim/exim-src/src acl.c exim/exim-test/confs 0023 exim/exim-test/stderr 0023
ph10 2007/02/14 15:33:40 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog NewStuff 
    exim-src/src         acl.c 
    exim-test/confs      0023 
    exim-test/stderr     0023 
  Log:
  Add "continue" modifier.


  Revision  Changes    Path
  1.480     +3 -0      exim/exim-doc/doc-txt/ChangeLog
  1.142     +11 -1     exim/exim-doc/doc-txt/NewStuff
  1.74      +16 -7     exim/exim-src/src/acl.c
  1.4       +1 -0      exim/exim-test/confs/0023
  1.3       +7 -0      exim/exim-test/stderr/0023


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.479
  retrieving revision 1.480
  diff -u -r1.479 -r1.480
  --- ChangeLog    14 Feb 2007 14:59:01 -0000    1.479
  +++ ChangeLog    14 Feb 2007 15:33:40 -0000    1.480
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.479 2007/02/14 14:59:01 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.480 2007/02/14 15:33:40 ph10 Exp $


   Change log file for Exim from version 4.21
   -------------------------------------------
  @@ -105,6 +105,9 @@
         ${reduce, with only minor "tidies".


   SC/02 Applied Daniel Tiefnig's patch to improve the '($parent) =' pattern match.
  +
  +PH/26 Added a "continue" ACL modifier that does nothing, for the benefit of its
  +      expansion side effects.



Exim version 4.66

  Index: NewStuff
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
  retrieving revision 1.141
  retrieving revision 1.142
  diff -u -r1.141 -r1.142
  --- NewStuff    14 Feb 2007 14:59:01 -0000    1.141
  +++ NewStuff    14 Feb 2007 15:33:40 -0000    1.142
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.141 2007/02/14 14:59:01 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.142 2007/02/14 15:33:40 ph10 Exp $


   New Features in Exim
   --------------------
  @@ -292,7 +292,7 @@
       option; with -I they don't. In both cases it is possible to change the case
       sensitivity within the pattern using (?i) or (?-i).


  -14. A number of new features have been added to string expansions to make it
  +16. A number of new features have been added to string expansions to make it
       easier to process lists of items, typically addresses. These are as
       follows:


@@ -364,6 +364,16 @@

       At the end of a ${reduce expansion, the values of $item and $value is
       restored to what they were before.
  +
  +17. There's a new ACL modifier called "continue". It does nothing of itself,
  +    and processing of the ACL always continues with the next condition or
  +    modifier. It is provided so that the side effects of expanding its argument
  +    can be used. Typically this would be for updating a database. It is really
  +    just a syntactic tidiness, because the following two lines have the same
  +    effect:
  +
  +      continue  = <some expansion>
  +      condition = ${if eq{0}{<some expansion>}{true}{true}}



Version 4.66

  Index: acl.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/acl.c,v
  retrieving revision 1.73
  retrieving revision 1.74
  diff -u -r1.73 -r1.74
  --- acl.c    7 Feb 2007 11:24:56 -0000    1.73
  +++ acl.c    14 Feb 2007 15:33:40 -0000    1.74
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/acl.c,v 1.73 2007/02/07 11:24:56 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/acl.c,v 1.74 2007/02/14 15:33:40 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -53,6 +53,7 @@
          ACLC_BMI_OPTIN,
   #endif
          ACLC_CONDITION,
  +       ACLC_CONTINUE,
          ACLC_CONTROL,
   #ifdef WITH_CONTENT_SCAN
          ACLC_DECODE,
  @@ -101,10 +102,10 @@
   #endif
          ACLC_VERIFY };


-/* ACL conditions/modifiers: "delay", "control", "endpass", "message",
-"log_message", "log_reject_target", "logwrite", and "set" are modifiers that
-look like conditions but always return TRUE. They are used for their side
-effects. */
+/* ACL conditions/modifiers: "delay", "control", "continue", "endpass",
+"message", "log_message", "log_reject_target", "logwrite", and "set" are
+modifiers that look like conditions but always return TRUE. They are used for
+their side effects. */

   static uschar *conditions[] = {
     US"acl",
  @@ -114,6 +115,7 @@
     US"bmi_optin",
   #endif
     US"condition",
  +  US"continue",
     US"control",
   #ifdef WITH_CONTENT_SCAN
     US"decode",
  @@ -237,6 +239,7 @@
     TRUE,    /* bmi_optin */
   #endif
     TRUE,    /* condition */
  +  TRUE,    /* continue */
     TRUE,    /* control */
   #ifdef WITH_CONTENT_SCAN
     TRUE,    /* decode */
  @@ -296,6 +299,7 @@
     TRUE,    /* bmi_optin */
   #endif
     FALSE,   /* condition */
  +  TRUE,    /* continue */
     TRUE,    /* control */
   #ifdef WITH_CONTENT_SCAN
     FALSE,   /* decode */
  @@ -345,9 +349,9 @@
     FALSE    /* verify */
   };


-/* Bit map vector of which conditions are not allowed at certain times. For
-each condition, there's a bitmap of dis-allowed times. For some, it is easier
-to specify the negation of a small number of allowed times. */
+/* Bit map vector of which conditions and modifiers are not allowed at certain
+times. For each condition, there's a bitmap of dis-allowed times. For some, it
+is easier to specify the negation of a small number of allowed times. */

   static unsigned int cond_forbids[] = {
     0,                                               /* acl */
  @@ -375,6 +379,8 @@


     0,                                               /* condition */


  +  0,                                               /* continue */
  +
     /* Certain types of control are always allowed, so we let it through
     always and check in the control processing itself. */


  @@ -2552,6 +2558,9 @@
               strcmpic(arg, US"true") == 0)? OK : DEFER;
       if (rc == DEFER)
         *log_msgptr = string_sprintf("invalid \"condition\" value \"%s\"", arg);
  +    break;
  +
  +    case ACLC_CONTINUE:    /* Always succeeds */
       break;


       case ACLC_CONTROL:


  Index: 0023
  ===================================================================
  RCS file: /home/cvs/exim/exim-test/confs/0023,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- 0023    14 Nov 2006 16:40:36 -0000    1.3
  +++ 0023    14 Feb 2007 15:33:40 -0000    1.4
  @@ -51,6 +51,7 @@


     deny    message = domain explicitly denied
             log_message = DOMAIN EXPLICITLY DENIED
  +          continue = this value is not used
             domains = deny.test.ex


     accept  domains = +local_domains


  Index: 0023
  ===================================================================
  RCS file: /home/cvs/exim/exim-test/stderr/0023,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- 0023    19 Apr 2006 11:11:13 -0000    1.2
  +++ 0023    14 Feb 2007 15:33:40 -0000    1.3
  @@ -16,6 +16,7 @@
   >>> test.ex in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> test.ex in "deny.test.ex"? no (end of list)
   >>> deny: condition test failed
  @@ -36,6 +37,7 @@
   >>> z in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> z in "deny.test.ex"? no (end of list)
   >>> deny: condition test failed
  @@ -65,6 +67,7 @@
   >>> test.ex in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> test.ex in "deny.test.ex"? no (end of list)
   >>> deny: condition test failed
  @@ -85,6 +88,7 @@
   >>> test.ex in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> test.ex in "deny.test.ex"? no (end of list)
   >>> deny: condition test failed
  @@ -105,6 +109,7 @@
   >>> relay.test.ex in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> relay.test.ex in "deny.test.ex"? no (end of list)
   >>> deny: condition test failed
  @@ -125,6 +130,7 @@
   >>> deny.test.ex in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> deny.test.ex in "deny.test.ex"? yes (matched "deny.test.ex")
   >>> deny: condition test succeeded
  @@ -139,6 +145,7 @@
   >>> refuse.test.ex in "!wontpass"? yes (end of list)
   >>> require: condition test succeeded
   >>> processing "deny"
  +>>> check continue = this value is not used
   >>> check domains = deny.test.ex
   >>> refuse.test.ex in "deny.test.ex"? no (end of list)
   >>> deny: condition test failed