Re: [Exim] Distributed Checksum Clearinghouse into local_sca…

Top Pagina
Delete this message
Reply to this message
Auteur: Alexander Sabourenkov
Datum:  
Aan: exim-users
Onderwerp: Re: [Exim] Distributed Checksum Clearinghouse into local_scan?
Hello.

Matthew Byng-Maddick wrote:
> On Tue, May 07, 2002 at 03:28:41PM +0400, Alexander Sabourenkov wrote:
>
>>rid of libmilter stuff, but it seems to me it would be interesting
>>to enable exim to use all the libmilter-based stuff. Or does it
>>massively suck? (or maybe there aren't so many useful libmilter-based
>>thingies out there ?)
>
>
> There may be, but libmilter relies fairly heavily on sendmail internals
> (which are different in exim). This makes it quite hard to implement a
> library that does the right thing.


This far into "libmilter-based thingy" I see that it is no more than calling
user-supplied hooks at various stages, almost identical to exim4's ACLs.
The interesting thing is that each "libmilter thingy" is a daemon on its own,
to which sendmails talk if themselves compiled with libmilter support and
have enabled queries (and defined order thereof) to specific daemons in
their config files.

I see no difficulty, apart from time taken, to implement interface to
"libmilter-based thingies" as a conditions or statements in corresponding
ACLs (though they have hooks for connection-time, HELO-time and message
abort)

As I understand, typically libmilter daemon should be taken through all steps
- that is, connection, helo,mail from, rcpt to, each header, end of headers,
message body, end of message, connection close or be sent an abort.
Thus we would have to add implicit hook calls if given ACL has generated an ACCEPT,
but corresponding condition hasn't been called, or condition other than
libmilter's has generated a DENY (in which case we should issue an abort).
(and we also have to cache condition/statement results as to not confuse the daemon in case
conditions/statements are used multiple times)

Other than that I don't see any issues.

Your thoughts please.

./lxnt