httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rian A Hunter <r...@MIT.EDU>
Subject prefork mpm in linux: ap_process_connection isn't called on connection
Date Wed, 29 Mar 2006 02:06:27 GMT
Hey All,

On the httpd trunk in prefork.c ap_process_connection isn't called until
there is data on the new connection (instead of just when a client connects).
I don't know if this is the intended behavior but from what I can see this is
because the poll descriptor is set to poll on POLL_IN, in apr_poll.h:

#define APR_POLLIN    0x001     /**< Can read without blocking */

On a new connection "event" there is no guarantee to be able to read without
blocking, so I think the intended behavior is to stop blocking only when there
is data on the new connection.

For the HTTP protocol either behavior works, for other protocols
ap_process_connection should be called immediately when a client connects (for
instance SMTP, where it is mandatory for the server to send data first).
Actually this is indeed what happens in BSD variants.

I don't intend to post a bug without a fix but currently there is no
APR_POLLCONNECTION (or something similar) in apr. What should be done?


View raw message