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 :)