Dear tech@,

eric@ has written an (awesome :p) asynchronous resolver that allows us to do
non-blocking DNS lookups.

As of today, smtpd implements non-blocking lookups through a fork+imsg hack,
creating a socketpair() and a new process for each lookup. It kind of worked
ok but recently a bug report exposed that it was not the case under load.

With lots of help from eric@ and his (did I mention awesome ?) resolver, the
fork+imsg hack is gone and smtpd can now do non-blocking lookups in lka. The
bonus is that while at it I spotted a bug that was introduced with the hack,
which caused some "relay via" to be handled as "relay" rules.

A tarball to test:  http://www.poolp.org/~gilles/smtpd-asyncdns.tar.gz

This is smtpd-current, queue is unchanged, please test as it is experimental
code. I will run it for a few days and commit if I see no drawbacks and I do
not receive mails saying it breaks a working setup.

more features to come soon ;-)

Gilles

-- 
Gilles Chehade

Reply via email to