Autor: Ian FREISLICH Data: A: Tom Kistner CC: exim-users Assumpte: [exim] exiscan and spamd interraction
Hi
I've noticed that when spamd goes all coy (actually quite often)
and accepts connections, but never writes or reads, exim waits and
waits and eventually gives up and accepts the message but in the
mean time the remote sender times out and resends the message.
Poking around in the source it seems that the spamd socket read
timeout is an hour and there is no timeout on writing. Since the
scanning happens at SMTP time it makes sense for the timeout to be
less than 5 minutes, probably not more than 2 minutes considering
other tests and delays that may have been introduced in other ACL
statements.
The socket should probably be made fcntl(spamd_sock, F_SETFL,
O_NONBLOCK) and select() or poll() used with a timeout to determine
if data can be written without blocking. I'll see if I can come up
with a patch but you may well beat me to it.