[RFC PATCH v2] imapd.c: imapoptions: implement idle timeout

ellie timoney ellie at fastmail.com
Tue Sep 27 02:19:54 EDT 2016

On Thu, Sep 22, 2016, at 05:55 AM, Carson Gaspar via Cyrus-devel wrote:
> > If the client's connection has dropped out, no data will ever appear on
> > the socket, so select will never flag it as readable, so we will never
> > try to read from it, so we will never receive the read error even though
> > tcp_keepalive detected the dropout.  And if this client was idling with
> >
> Not true on any flavour of UNIX of which I'm aware. select() marks a fd 
> as readable on EOF. poll() marks the fd as either POLLIN, POLLHUP, or 
> both (sadly implementation specific).

Yeah wow, interesting.  Something I was reading last week was utterly
certain that keepalive's effect would -only- be noticed on read/write
attempts (not on select).  But documentation confirms that select is at
least -supposed- to notice this, and if select notices it, then imapd
will see it and terminate the connection.  Cool.

Thanks for clearing that up :)

More information about the Cyrus-devel mailing list