On Fri, 6 May 2005, Sam Michaels wrote:
> I just noticed that exim doesn't clean up from a dropped connection
> during a delay statement.
>
> 1) MX/client negotiate
> 2) client sends MAIL FROM
> 3) client sends RCPT TO
> 4) MX now stalls for 5 minutes from "delay = 5m" in the ACL
> 5) client drops the connection after a few seconds
> 6) MX continues to wait the full 5 minutes before putting the error in
> the log and cleaning up
>
> Running 4.50 and the state of the connection on the client was at
> FIN_WAIT2 while the MX continued to wait. Wouldn't it make more sense
> to free up those resources if the client goes away?
Exim implements "delay = 5m" in the most trivial possible way. It waits
for 5 minutes. :-) I am not sure how easy it is to code "wait for 5
minutes or until the connection goes away". It is straightforward to
code the opposite, i.e. "wait for 5 minutes or until some data arrives
on the connection", which is the more common requirement, of course.
I'll put this on the Wish List for investigation, but don't hold your
breath.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book