On 15-Aug-07, at 7:08 PM, Ed McLain wrote:
IS there any documentation anywhere on how and what needs to be
changed?
I've looked on the wiki and don't see anything on there about it.
As an
aside, I'll dig through the dnsbl plugin for async and see what I
can come
up with. Any information would be very helpful though.
There isn't much documentation on it unfortunately.
The big problem tends to be in the queue plugins as they do I/O - so
for example in the postfix-queue plugin it opens a UNIX domain socket
to the postfix queue daemon and squirts the message down that socket.
All the time it is doing that, qpsmtpd-async could be processing
other connections, but because it's not written in an async manner it
can't.
All you really need to do is create a subclass of Danga::Socket that
does the same stuff Qpsmtpd::Postfix does, have the plugin return
YIELD, and when the sending to postfix is complete run $qpsmtpd-
>run_transaction to finish up.
I'm probably making it sound a bit simpler than it is, but all I mean
is it's not a whole lot of work. If I had a postfix installation it'd
be an afternoon's effort (but I don't have access to one).
Matt