OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: A question about Milters and Thread Safety

From: Michael Tokarev (mjttls.msk.ru)
Date: Mon Sep 03 2007 - 16:20:21 CDT


Ronald F. Guilmette wrote:
> In message <20070903193047.4AF311F3EA1spike.porcupine.org>,
> wietseporcupine.org (Wietse Venema) wrote:
[]
>> Your milter application runs on top of libmilter.
>
> Well, that sort-of begs the question... What if it _didn't_ run on
> top of libmilter? What if it skipped that and tried to interface
> to Postfix smtpd directly? Would my milter still have to be
> thread-safe under that scenario?

Your app can implement/talk milter protocol internally. You don't
interface to Postfix smtpd directly, but you use sockets to talk
to Postfix. Speaking of the protocol - well, one (reference)
implementation of server-side milter (Postfix is on client side
in this case) is libmilter, which use threads - you can roll your
own...

> (Please forgive me for making such an issue of this, but it really
> would be a major pain in the ass to make what I have in mind thread-
> safe. A significant part of the problem with doing that... but
> certainly not the only problem... is that the spam filter that I'd
> like to turn into a milter does DNS lookups. Sadly, I am not aware
> of any thread-safe DNS primitives library, so I kind-of think that
> I'd be stuck trying to write my own, from scratch. Am I just looking
> in the Wrong Places? Does anybody here happen to know of a reasonably
> priced thread-safe DNS primitives library?)

Ever looked at my udns -- http://www.corpit.ru/mjt/udns.html ?

/mjt