diff --git a/CHANGES b/CHANGES index 3d674a82c8..e8465d646a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) WinNT MPM: If ap_run_pre_connection() fails or sets c->aborted, don't + save the socket for reuse by the next worker as if it were an + APR_SO_DISCONNECTED socket. Restores 2.2 behavior. [Eric Covener] + *) mod_auth_digest: Be more specific when the realm mismatches because the realm has not been specified. [Graham Leggett] diff --git a/server/mpm/winnt/child.c b/server/mpm/winnt/child.c index b62fabdaae..cb37fc9f3a 100644 --- a/server/mpm/winnt/child.c +++ b/server/mpm/winnt/child.c @@ -878,12 +878,13 @@ static DWORD __stdcall worker_main(void *thread_num_val) if (!c->aborted) { ap_run_process_connection(c); + } - apr_socket_opt_get(context->sock, APR_SO_DISCONNECTED, - &disconnected); + apr_socket_opt_get(context->sock, APR_SO_DISCONNECTED, &disconnected); - if (!disconnected) { - context->accept_socket = INVALID_SOCKET; + if (!disconnected) { + context->accept_socket = INVALID_SOCKET; + if (!c->aborted) { ap_lingering_close(c); } }