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),