On 05/19/2008 06:09 PM, Adam Woodworth wrote:
Index: modules/proxy/proxy_util.c
+ /* Close a possible existing socket if we are told to do so */
+ if (conn->close) {
+ socket_cleanup(conn);
+ conn->close = 0;
+ }
Does this mean that sockets that should have been closed (via the
close flag) weren't getting closed correctly before? I.e. sockets in
the pool were still "open" as far as mod_proxy was concerned even
though we set the close flag?
No, it does not mean this. This patch is needed to correctly act, when the patch
below kicks in. So far conn->close was *always* 0 at this point of code, but
with the patch below it might not, as we might decide *before* reusing a
connection
that we better should not.
Why is the patch below necessary? The comments indicate that if we
were to us an existing keepalive connection to the backend server, but
it failed, then if the client was NOT keepalive then we couldn't send
the failure to the client...but why? If we fail to connect to the
This is because the client does not expect this kind of failure in this
situation and
acts wrong. If it is the initial connection e.g. of a seamonkey browser it does
not
try to resent the request but simply displays an blank page which is bad for
the user.,
backend, whether on a keepalive or non-keepalive connection, why does
it matter if the client is keepalive or not in order to send an error?
We do not send an error, but we are closing the connection an expect to the
client to handle
this correctly which it does only if it used a kept alive connection.
Regards
RĂ¼diger