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