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

Góra strony
Delete this message
Reply to this message
Autor: Philip Hazel
Data:  
Dla: exim-cvs
Temat: [exim-cvs] cvs commit: exim/exim-doc/doc-txt ChangeLog NewStuff OptionLists.txt exim/exim-src/src macros.h rda.c exim/exim-src/src/routers redirect.c exim/exim-test-orig/AutoTest/confs 002 exim/exi
ph10 2004/11/04 10:42:11 GMT

  Modified files:
    exim-doc/doc-txt     ChangeLog NewStuff OptionLists.txt 
    exim-src/src         macros.h rda.c 
    exim-src/src/routers redirect.c 
    exim-test-orig/AutoTest/confs 002 
    exim-test-orig/AutoTest/stdout 001 002 
  Log:
  Added forbid_exim_filter and forbid_sieve_filter to the redirect router.


  Revision  Changes    Path
  1.14      +2 -0      exim/exim-doc/doc-txt/ChangeLog
  1.5       +5 -0      exim/exim-doc/doc-txt/NewStuff
  1.3       +2 -0      exim/exim-doc/doc-txt/OptionLists.txt
  1.2       +20 -18    exim/exim-src/src/macros.h
  1.2       +27 -8     exim/exim-src/src/rda.c
  1.2       +4 -0      exim/exim-src/src/routers/redirect.c
  1.2       +2 -0      exim/exim-test-orig/AutoTest/confs/002
  1.2       +4 -0      exim/exim-test-orig/AutoTest/stdout/001
  1.2       +8 -0      exim/exim-test-orig/AutoTest/stdout/002


  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ChangeLog    19 Oct 2004 13:40:39 -0000    1.13
  +++ ChangeLog    4 Nov 2004 10:42:11 -0000    1.14
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.13 2004/10/19 13:40:39 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.14 2004/11/04 10:42:11 ph10 Exp $


Change log file for Exim from version 4.21
-------------------------------------------
@@ -53,6 +53,8 @@

   13. The value of address_data from a sender verification is now available in
       $sender_address_data in subsequent conditions in the ACL statement.
  +
  +14. Added forbid_sieve_filter and forbid_exim_filter to the redirect router.



Exim version 4.43

  Index: NewStuff
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NewStuff    21 Oct 2004 15:24:42 -0000    1.4
  +++ NewStuff    4 Nov 2004 10:42:11 -0000    1.5
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.4 2004/10/21 15:24:42 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.5 2004/11/04 10:42:11 ph10 Exp $


   New Features in Exim
   --------------------
  @@ -27,6 +27,11 @@
       this is just like $address_data. The value does not persist after the end
       of the current ACL statement. If you want to preserve it, you can use one
       of the ACL variables.
  +
  + 5. The redirect router has two new options: forbid_sieve_filter and
  +    forbid_exim_filter. When filtering is enabled by allow_filter, these
  +    options control which type(s) of filtering are permitted. By default, both
  +    Exim and Sieve filters are allowed.



Version 4.43

  Index: OptionLists.txt
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/OptionLists.txt,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- OptionLists.txt    18 Oct 2004 09:16:57 -0000    1.2
  +++ OptionLists.txt    4 Nov 2004 10:42:11 -0000    1.3
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.2 2004/10/18 09:16:57 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/OptionLists.txt,v 1.3 2004/11/04 10:42:11 ph10 Exp $


   LISTS OF EXIM OPTIONS
   ---------------------
  @@ -196,6 +196,7 @@
   final_timeout                        time            10m           smtp
   finduser_retries                     integer         0             main
   forbid_blackhole                     boolean         false         redirect          4.00
  +forbid_exim_filter                   boolean         false         redirect          4.44
   forbid_fail                          boolean         false         redirect          4.00
   forbid_file                          boolean         false         redirect          4.00
   forbid_filter_existstest             boolean         false         redirect          4.00
  @@ -208,6 +209,7 @@
   forbid_filter_run                    boolean         false         redirect          4.00
   forbid_include                       boolean         false         redirect          4.00
   forbid_pipe                          boolean         false         redirect          4.00
  +forbid_sieve_filter                  boolean         false         redirect          4.44
   freeze_exec_fail                     boolean         false         pipe              1.89
   freeze_tell                          boolean         false         main              4.00 replaces freeze_tell_mailmaster
   from                                 string*         unset         autoreply


  Index: macros.h
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/macros.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- macros.h    7 Oct 2004 10:39:01 -0000    1.1
  +++ macros.h    4 Nov 2004 10:42:11 -0000    1.2
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/macros.h,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/macros.h,v 1.2 2004/11/04 10:42:11 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -467,23 +467,25 @@
   router, which were chosen to represent the standard situation for users'
   .forward files. */


  -#define RDO_BLACKHOLE  0x00000001  /* Forbid :blackhole: */
  -#define RDO_DEFER      0x00000002  /* Allow :defer: or "defer" */
  -#define RDO_EACCES     0x00000004  /* Ignore EACCES */
  -#define RDO_ENOTDIR    0x00000008  /* Ignore ENOTDIR */
  -#define RDO_EXISTS     0x00000010  /* Forbid "exists" in expansion in filter */
  -#define RDO_FAIL       0x00000020  /* Allow :fail: or "fail" */
  -#define RDO_FILTER     0x00000040  /* Allow a filter script */
  -#define RDO_FREEZE     0x00000080  /* Allow "freeze" */
  -#define RDO_INCLUDE    0x00000100  /* Forbid :include: */
  -#define RDO_LOG        0x00000200  /* Forbid "log" */
  -#define RDO_LOOKUP     0x00000400  /* Forbid "lookup" in expansion in filter */
  -#define RDO_PERL       0x00000800  /* Forbid "perl" in expansion in filter */
  -#define RDO_READFILE   0x00001000  /* Forbid "readfile" in exp in filter */
  -#define RDO_READSOCK   0x00002000  /* Forbid "readsocket" in exp in filter */
  -#define RDO_RUN        0x00004000  /* Forbid "run" in expansion in filter */
  -#define RDO_REALLOG    0x00008000  /* Really do log (not testing/verifying) */
  -#define RDO_REWRITE    0x00010000  /* Rewrite generated addresses */
  +#define RDO_BLACKHOLE    0x00000001  /* Forbid :blackhole: */
  +#define RDO_DEFER        0x00000002  /* Allow :defer: or "defer" */
  +#define RDO_EACCES       0x00000004  /* Ignore EACCES */
  +#define RDO_ENOTDIR      0x00000008  /* Ignore ENOTDIR */
  +#define RDO_EXISTS       0x00000010  /* Forbid "exists" in expansion in filter */
  +#define RDO_FAIL         0x00000020  /* Allow :fail: or "fail" */
  +#define RDO_FILTER       0x00000040  /* Allow a filter script */
  +#define RDO_FREEZE       0x00000080  /* Allow "freeze" */
  +#define RDO_INCLUDE      0x00000100  /* Forbid :include: */
  +#define RDO_LOG          0x00000200  /* Forbid "log" */
  +#define RDO_LOOKUP       0x00000400  /* Forbid "lookup" in expansion in filter */
  +#define RDO_PERL         0x00000800  /* Forbid "perl" in expansion in filter */
  +#define RDO_READFILE     0x00001000  /* Forbid "readfile" in exp in filter */
  +#define RDO_READSOCK     0x00002000  /* Forbid "readsocket" in exp in filter */
  +#define RDO_RUN          0x00004000  /* Forbid "run" in expansion in filter */
  +#define RDO_REALLOG      0x00008000  /* Really do log (not testing/verifying) */
  +#define RDO_REWRITE      0x00010000  /* Rewrite generated addresses */
  +#define RDO_EXIM_FILTER  0x00020000  /* Forbid Exim filters */
  +#define RDO_SIEVE_FILTER 0x00040000  /* Forbid Sieve filters */


/* This is the set that apply to expansions in filters */

  @@ -497,7 +499,7 @@
   enum { RDON_BLACKHOLE, RDON_DEFER, RDON_EACCES, RDON_ENOTDIR, RDON_EXISTS,
     RDON_FAIL, RDON_FILTER, RDON_FREEZE, RDON_INCLUDE, RDON_LOG, RDON_LOOKUP,
     RDON_PERL, RDON_READFILE, RDON_READSOCK, RDON_RUN, RDON_REALLOG,
  -  RDON_REWRITE };
  +  RDON_REWRITE, RDON_EXIM_FILTER, RDON_SIEVE_FILTER };


/* Results of filter or forward file processing. Some are only from a filter;
some are only from a forward file. */

  Index: rda.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/rda.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- rda.c    7 Oct 2004 10:39:01 -0000    1.1
  +++ rda.c    4 Nov 2004 10:42:11 -0000    1.2
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/rda.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/rda.c,v 1.2 2004/11/04 10:42:11 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -374,23 +374,42 @@
     int frc;
     int old_expand_forbid = expand_forbid;


  +  DEBUG(D_route) debug_printf("data is %s filter program\n",
  +    (*filtertype == FILTER_EXIM)? "an Exim" : "a Sieve");
  +
  +  /* RDO_FILTER is an "allow" bit */
  +   
     if ((options & RDO_FILTER) == 0)
       {
       *error = US"filtering not enabled";
       return FF_ERROR;
       }


  -  DEBUG(D_route) debug_printf("data is %s filter program\n",
  -    (*filtertype == FILTER_EXIM)? "an Exim" : "a Sieve");
  -
     expand_forbid =
       (expand_forbid & ~RDO_FILTER_EXPANSIONS) |
       (options & RDO_FILTER_EXPANSIONS);
  -
  -  frc = (*filtertype == FILTER_EXIM)?
  -    filter_interpret(data, options, generated, error)
  -    :
  -    sieve_interpret(data, options, sieve_vacation_directory, generated, error);
  +  
  +  /* RDO_{EXIM,SIEVE}_FILTER are forbid bits */
  +   
  +  if (*filtertype == FILTER_EXIM)
  +    {
  +    if ((options & RDO_EXIM_FILTER) != 0)
  +      {
  +      *error = US"Exim filtering not enabled";
  +      return FF_ERROR;
  +      }    
  +    frc = filter_interpret(data, options, generated, error);
  +    }  
  +  else
  +    {
  +    if ((options & RDO_SIEVE_FILTER) != 0)
  +      {
  +      *error = US"Sieve filtering not enabled";
  +      return FF_ERROR;
  +      }
  +    frc = sieve_interpret(data, options, sieve_vacation_directory, generated, 
  +      error);
  +    }   


     expand_forbid = old_expand_forbid;
     return frc;


  Index: redirect.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/redirect.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- redirect.c    7 Oct 2004 13:10:02 -0000    1.1
  +++ redirect.c    4 Nov 2004 10:42:11 -0000    1.2
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/redirect.c,v 1.1 2004/10/07 13:10:02 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/redirect.c,v 1.2 2004/11/04 10:42:11 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -41,6 +41,8 @@
         (void *)offsetof(redirect_router_options_block, file_transport_name) },
     { "forbid_blackhole",   opt_bit | (RDON_BLACKHOLE << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
  +  { "forbid_exim_filter", opt_bit | (RDON_EXIM_FILTER << 16),
  +      (void *)offsetof(redirect_router_options_block, bit_options) },
     { "forbid_file",        opt_bool,
         (void *)offsetof(redirect_router_options_block, forbid_file) },
     { "forbid_filter_existstest",  opt_bit | (RDON_EXISTS << 16),
  @@ -65,6 +67,8 @@
         (void *)offsetof(redirect_router_options_block, bit_options) },
     { "forbid_pipe",        opt_bool,
         (void *)offsetof(redirect_router_options_block, forbid_pipe) },
  +  { "forbid_sieve_filter",opt_bit | (RDON_SIEVE_FILTER << 16),
  +      (void *)offsetof(redirect_router_options_block, bit_options) },
     { "hide_child_in_errmsg", opt_bool,
         (void *)offsetof(redirect_router_options_block,  hide_child_in_errmsg) },
     { "ignore_eacces",      opt_bit | (RDON_EACCES << 16),


  Index: 002
  ===================================================================
  RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/002,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- 002    8 Oct 2004 14:49:15 -0000    1.1
  +++ 002    4 Nov 2004 10:42:11 -0000    1.2
  @@ -482,6 +482,8 @@
   forward:
     driver = redirect
     allow_filter
  +  forbid_exim_filter
  +  forbid_sieve_filter  
     caseful_local_part
     check_ancestor
     check_local_user


  Index: 001
  ===================================================================
  RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/001,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- 001    8 Oct 2004 14:50:13 -0000    1.1
  +++ 001    4 Nov 2004 10:42:11 -0000    1.2
  @@ -461,6 +461,7 @@
   file = 
   file_transport = 
   no_forbid_blackhole
  +no_forbid_exim_filter
   no_forbid_file
   no_forbid_filter_existstest
   no_forbid_filter_logwrite
  @@ -472,6 +473,7 @@
   no_forbid_filter_run
   no_forbid_include
   no_forbid_pipe
  +no_forbid_sieve_filter
   no_hide_child_in_errmsg
   no_ignore_eacces
   no_ignore_enotdir
  @@ -548,6 +550,7 @@
   file = $home/.forward
   file_transport = 
   no_forbid_blackhole
  +no_forbid_exim_filter
   no_forbid_file
   no_forbid_filter_existstest
   no_forbid_filter_logwrite
  @@ -559,6 +562,7 @@
   no_forbid_filter_run
   no_forbid_include
   no_forbid_pipe
  +no_forbid_sieve_filter
   no_hide_child_in_errmsg
   no_ignore_eacces
   no_ignore_enotdir


  Index: 002
  ===================================================================
  RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/002,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- 002    8 Oct 2004 14:50:13 -0000    1.1
  +++ 002    4 Nov 2004 10:42:11 -0000    1.2
  @@ -466,6 +466,7 @@
   file = 
   file_transport = dummy
   forbid_blackhole
  +no_forbid_exim_filter
   no_forbid_file
   no_forbid_filter_existstest
   no_forbid_filter_logwrite
  @@ -477,6 +478,7 @@
   no_forbid_filter_run
   forbid_include
   no_forbid_pipe
  +no_forbid_sieve_filter
   hide_child_in_errmsg
   no_ignore_eacces
   no_ignore_enotdir
  @@ -553,6 +555,7 @@
   file = /some/file
   file_transport = 
   no_forbid_blackhole
  +no_forbid_exim_filter
   no_forbid_file
   no_forbid_filter_existstest
   no_forbid_filter_logwrite
  @@ -564,6 +567,7 @@
   no_forbid_filter_run
   no_forbid_include
   no_forbid_pipe
  +no_forbid_sieve_filter
   no_hide_child_in_errmsg
   no_ignore_eacces
   no_ignore_enotdir
  @@ -640,6 +644,7 @@
   file = //.forward2
   file_transport = dummy
   forbid_blackhole
  +forbid_exim_filter
   no_forbid_file
   forbid_filter_existstest
   no_forbid_filter_logwrite
  @@ -651,6 +656,7 @@
   forbid_filter_run
   no_forbid_include
   no_forbid_pipe
  +forbid_sieve_filter
   hide_child_in_errmsg
   no_ignore_eacces
   no_ignore_enotdir
  @@ -773,6 +779,7 @@
   file = 
   file_transport = dummy
   no_forbid_blackhole
  +no_forbid_exim_filter
   forbid_file
   no_forbid_filter_existstest
   no_forbid_filter_logwrite
  @@ -784,6 +791,7 @@
   no_forbid_filter_run
   no_forbid_include
   forbid_pipe
  +no_forbid_sieve_filter
   hide_child_in_errmsg
   no_ignore_eacces
   no_ignore_enotdir