--
Philip,
Is there any chance you could include the dlopen-localscan patch in
version 4.10?
http://marc.merlins.org/linux/exim/files/sa-exim-current/localscan_dlopen.patch
It adds a compile-time option to disable the dlopen stuff (which
leaves the local_scan as you currently have it). If the dlopen stuff
is included, by default the local_scan will behave the same. If the
admin adds the option local_scan_path to their exim.conf, then the
specified .so will be dlopened and the result will be whatever that
function returns. If there is an error, it will temporarily reject
the mail with an explanatory message.
I've been using it with sa-exim for quite a while now.
Ideally you'll include it by the time you work out the interface for
putting local_scan configuration options in the exim.conf file. One
thing to consider in the design of that interface is the ability for
those options to change at runtime, when a .so is loaded. This would
also apply to the situation when someone creates a local_scan that can
dlopen several modules and chain the local_scans together. This would
yield at least 4 local_scan functions, one that is built-in and 3 that
are loaded dynamically.
I just had a couple of ideas on how that could be done. They might
not be any good, but here they are anyways.
. exim could provide a function that the local_scan can call to
request parsing of the local_scan's config file. The function
would receive as arguments a structure indicating the legal
config options and the filename. The file will reside in the same
directory as exim.conf.
. A variation on the previous idea -- the end of the exim.conf could
be 'begin local_scan', and then it would contain a sub-section for
each local_scan module (eg 'begin sa-exim'; 'begin exiscan'). In
the initial pass, exim would accept any syntactically correct text
in those sections. A function would be provided for the
local_scan module to specify the structure of the legal options,
and the designator for the section. exim would then validate the
config section at that time.
The dynamically-loaded module would call the config-loading function
when it is initialized.
-D
--
If your company is not involved in something called "ISO 9000" you
probably have no idea what it is. If your company _is_ involved in ISO
9000 then you definitely have no idea what it is.
(Scott Adams - The Dilbert principle)
http://dman.ddts.net/~dman/
--
[ Content of type application/pgp-signature deleted ]
--