summaryrefslogtreecommitdiffstats
path: root/modules/proxy/mod_proxy_http.c
diff options
context:
space:
mode:
authorJim Jagielski <jim@apache.org>2008-09-20 15:44:26 +0200
committerJim Jagielski <jim@apache.org>2008-09-20 15:44:26 +0200
commit14bb7079df8db0f63ba4f26d569b728155c3108b (patch)
tree94efb36479dae2011ab59dff2b2a035d1d796f18 /modules/proxy/mod_proxy_http.c
parentIntroduce Suspendable Requests to the Event MPM. (diff)
downloadapache2-14bb7079df8db0f63ba4f26d569b728155c3108b.tar.xz
apache2-14bb7079df8db0f63ba4f26d569b728155c3108b.zip
For timeouts, behave as before and not drop.
From Adam Woodworth <mirkperl gmail.com> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@697362 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/proxy/mod_proxy_http.c')
-rw-r--r--modules/proxy/mod_proxy_http.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c
index 856be141d4..74862637f1 100644
--- a/modules/proxy/mod_proxy_http.c
+++ b/modules/proxy/mod_proxy_http.c
@@ -1372,6 +1372,10 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
ap_log_rerror(APLOG_MARK, APLOG_ERR, rc, r,
"proxy: error reading status line from remote "
"server %s", backend->hostname);
+ if (rc == APR_TIMEUP) {
+ ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
+ "proxy: read timeout");
+ }
/*
* If we are a reverse proxy request shutdown the connection
* WITHOUT ANY response to trigger a retry by the client
@@ -1379,9 +1383,12 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
* BUT currently we should not do this if the request is the
* first request on a keepalive connection as browsers like
* seamonkey only display an empty page in this case and do
- * not do a retry.
+ * not do a retry. We should also not do this on a
+ * connection which times out; instead handle as
+ * we normally would handle timeouts
*/
- if (r->proxyreq == PROXYREQ_REVERSE && c->keepalives) {
+ if (r->proxyreq == PROXYREQ_REVERSE && c->keepalives &&
+ rc != APR_TIMEUP) {
apr_bucket *eos;
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,