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

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 NewStuff exim/exim-src/src/routers redirect.c
ph10 2005/03/22 15:02:35 GMT

  Modified files:
    exim-doc/doc-txt     NewStuff 
    exim-src/src/routers redirect.c 
  Log:
  Further tidies to the ${dlfunc code (thanks, Tony): redirect options are
  always available (but do nothing when the facility isn't compiled).
  Improve the NewStuff text.


  Revision  Changes    Path
  1.29      +11 -3     exim/exim-doc/doc-txt/NewStuff
  1.8       +0 -4      exim/exim-src/src/routers/redirect.c


  Index: NewStuff
  ===================================================================
  RCS file: /home/cvs/exim/exim-doc/doc-txt/NewStuff,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- NewStuff    22 Mar 2005 14:11:54 -0000    1.28
  +++ NewStuff    22 Mar 2005 15:02:34 -0000    1.29
  @@ -1,4 +1,4 @@
  -$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.28 2005/03/22 14:11:54 ph10 Exp $
  +$Cambridge: exim/exim-doc/doc-txt/NewStuff,v 1.29 2005/03/22 15:02:34 ph10 Exp $


New Features in Exim
--------------------
@@ -46,12 +46,20 @@

         set in Local/Makefile. The facility is not included by default (a
         suitable error is given if you try to use it when it is not there.)
  -      You load and call the function like this:
  +
  +      If you enable EXPAND_DLFUNC, you should also be aware of the new redirect
  +      router option forbid_filter_dlfunc. If you have unprivileged users on
  +      your system who are permitted to create filter files, you might want to
  +      set forbid_filter_dlfunc=true in the appropriate router, to stop them
  +      using ${dlfunc to run code within Exim.
  +
  +      You load and call an external function like this:


           ${dlfunc{/some/file}{function}{arg1}{arg2}...}


  -      Once loaded, Exim remembers it so that it doesn't reload it in the same
  -      Exim process (but of course Exim does start new processes frequently).
  +      Once loaded, Exim remembers the dynamically loaded object so that it
  +      doesn't reload the same object file in the same Exim process (but of
  +      course Exim does start new processes frequently).


         There may be from zero to eight arguments to the function. When compiling
         a local function that is to be called in this way, local_scan.h should be


  Index: redirect.c
  ===================================================================
  RCS file: /home/cvs/exim/exim-src/src/routers/redirect.c,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- redirect.c    22 Mar 2005 14:11:55 -0000    1.7
  +++ redirect.c    22 Mar 2005 15:02:34 -0000    1.8
  @@ -1,4 +1,4 @@
  -/* $Cambridge: exim/exim-src/src/routers/redirect.c,v 1.7 2005/03/22 14:11:55 ph10 Exp $ */
  +/* $Cambridge: exim/exim-src/src/routers/redirect.c,v 1.8 2005/03/22 15:02:34 ph10 Exp $ */


   /*************************************************
   *     Exim - an Internet mail transport agent    *
  @@ -45,20 +45,16 @@
         (void *)offsetof(redirect_router_options_block, bit_options) },
     { "forbid_file",        opt_bool,
         (void *)offsetof(redirect_router_options_block, forbid_file) },
  -  #ifdef EXPAND_DLFUNC
     { "forbid_filter_dlfunc", opt_bit | (RDON_DLFUNC << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
  -  #endif
     { "forbid_filter_existstest",  opt_bit | (RDON_EXISTS << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
     { "forbid_filter_logwrite",opt_bit | (RDON_LOG << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
     { "forbid_filter_lookup", opt_bit | (RDON_LOOKUP << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
  -  #ifdef EXIM_PERL
     { "forbid_filter_perl", opt_bit | (RDON_PERL << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
  -  #endif
     { "forbid_filter_readfile", opt_bit | (RDON_READFILE << 16),
         (void *)offsetof(redirect_router_options_block, bit_options) },
     { "forbid_filter_readsocket", opt_bit | (RDON_READSOCK << 16),