You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2013/11/26 18:11:51 UTC
svn commit: r1545736 - in /httpd/httpd/trunk/server/mpm: event/event.c
eventopt/eventopt.c
Author: trawick
Date: Tue Nov 26 17:11:51 2013
New Revision: 1545736
URL: http://svn.apache.org/r1545736
Log:
Follow-up to r1538490:
Ensure that conn_rec->sbh is always cleared when returning from process_socket().
Modified:
httpd/httpd/trunk/server/mpm/event/event.c
httpd/httpd/trunk/server/mpm/eventopt/eventopt.c
Modified: httpd/httpd/trunk/server/mpm/event/event.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?rev=1545736&r1=1545735&r2=1545736&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/event/event.c (original)
+++ httpd/httpd/trunk/server/mpm/event/event.c Tue Nov 26 17:11:51 2013
@@ -1028,6 +1028,7 @@ read_request:
* event thread poll for writeability.
*/
cs->expiration_time = ap_server_conf->timeout + apr_time_now();
+ c->sbh = NULL;
apr_thread_mutex_lock(timeout_mutex);
TO_QUEUE_APPEND(write_completion_q, cs);
cs->pfd.reqevents = (
@@ -1052,8 +1053,10 @@ read_request:
}
if (cs->pub.state == CONN_STATE_LINGER) {
- if (!start_lingering_close_blocking(cs))
+ if (!start_lingering_close_blocking(cs)) {
+ c->sbh = NULL;
return;
+ }
}
else if (cs->pub.state == CONN_STATE_CHECK_REQUEST_LINE_READABLE) {
/* It greatly simplifies the logic to use a single timeout value here
Modified: httpd/httpd/trunk/server/mpm/eventopt/eventopt.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/eventopt/eventopt.c?rev=1545736&r1=1545735&r2=1545736&view=diff
==============================================================================
--- httpd/httpd/trunk/server/mpm/eventopt/eventopt.c (original)
+++ httpd/httpd/trunk/server/mpm/eventopt/eventopt.c Tue Nov 26 17:11:51 2013
@@ -1080,6 +1080,7 @@ read_request:
pollset_op_t *v = ap_equeue_writer_value(eq);
cs->expiration_time = ap_server_conf->timeout + apr_time_now();
+ c->sbh = NULL;
cs->pfd.reqevents = (
cs->pub.sense == CONN_SENSE_WANT_READ ? APR_POLLIN :
APR_POLLOUT) | APR_POLLHUP | APR_POLLERR;
@@ -1108,6 +1109,7 @@ read_request:
if (cs->pub.state == CONN_STATE_LINGER) {
if (!start_lingering_close_blocking(cs, eq)) {
+ c->sbh = NULL;
return;
}
}