Szerző: Theo Schlossnagle Dátum: Címzett: Philip Hazel CC: Exim Users Mailing List Tárgy: Re: [Exim] Exim and IBM DB2
On Wednesday, December 19, 2001, at 05:51 AM, Philip Hazel wrote: > Exim 4 already has the option for including the source code for a
> function called local_scan() - which is called to scan messages as they
> arrive. Naturally, you can write C code for this function which does
> whatever you like. It occurs to me that, from my point of view as an
> implementor, this is a better approach, because it does not force any
> one implementation on people. The C code can do the job, call embedded
> Perl, make use of a dynamically loaded library, or use dlopen() if it
> wants to. That means the responsibility for choosing between these
> methods (on security or other grounds) is yours, not mine. :-)
That seems ideal for scanning messages. I am actually concerned about
logging as well. Also being able to effect the rest of the handling
path that Exim takes is very useful. Does local_scan allow you to
affect rewrites, discard messages, and effect the SMTP session with the
client? Those would be great places for hooks.
The logging side basically needs a single logging function that takes
(at least), the log message, the suggested destination
(main,reject,panic), and a debugging level. The default logging would
do what Exim does not. It would be nice to be able to override (or
supplement) this with code that writes to a database, publishes to a
distributed messaging bus, writes to a monitoring system for realtime
active graphs, etc.
Perl completely satifies this need on a functional level. I used to use
perl for this for some time in fact, but I found the resident footprint
size of exim to be too demanding. I often have around 1000 exim
processes running on a box at any given time. My code needs to be short
and to the point :-)
So, (Greg) the fundamental security flaw that you don't want introduced
into exim is already there. :-) I just want to be able to have access
to the perl interpreter on more execution paths in exim (logging in
particular).
--
Theo Schlossnagle
1024D/82844984/95FD 30F1 489E 4613 F22E 491A 7E88 364C 8284 4984
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7