On Wednesday 06 March 2013, Micha Lenk wrote: > However, using mod_websocket from the mentioned Github location, I > discovered that it has timeout issues when mod_reqtimeout is loaded > too (unless request body timeouts are disabled). Apparently > mod_reqtimeout now enforces timeouts in non-blocking I/O mode > independently from apr_socket timeouts. I.e. the call to > apr_socket_timeout_set() in mod_websocket.c doesn't disable all > active timeouts anymore. The result is that the websocket is > disconnected after 20 seconds > (RequestReadTimeout default for body timeout).
mod_reqtimeout only touches http connections and has also special handling to avoid touching CONNECT requests. But since websocket connections start their live as http, I see that there may be a problem. Is there a way for mod_reqtimeout to determine that a connection has been upgraded, i.e. that it is no longer http? If no, maybe we should extend the conn_rec to provide that information. Alternatively, mod_reqtimeout could offer an API to allow modules to disable it. But I think that is the worse of the two solutions.
