If the lingering close does not leave the socket in a disconnected state,
do not recycle the socket.
@@ -813,12 +813,12 @@ static DWORD __stdcall worker_main(void *thread_num_val)
ap_process_connection(c, context->sock);
- apr_socket_opt_get(context->sock, APR_SO_DISCONNECTED, &disconnected);
+ ap_lingering_close(c);
+ apr_socket_opt_get(context->sock, APR_SO_DISCONNECTED, &disconnected);
if (!disconnected) {
context->accept_socket = INVALID_SOCKET;
}
- ap_lingering_close(c);
}
ap_update_child_status_from_indexes(0, thread_num, SERVER_DEAD, NULL);
