You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
1021 B
20 lines
1021 B
diff --git a/modules/proxy/mod_proxy_fcgi.c b/modules/proxy/mod_proxy_fcgi.c |
|
index 19fed62..7889b0e 100644 |
|
--- a/modules/proxy/mod_proxy_fcgi.c |
|
+++ b/modules/proxy/mod_proxy_fcgi.c |
|
@@ -927,6 +927,15 @@ static int fcgi_do_request(apr_pool_t *p, request_rec *r, |
|
/* Step 3: Read records from the back end server and handle them. */ |
|
rv = dispatch(conn, conf, r, request_id); |
|
if (rv != APR_SUCCESS) { |
|
+ /* If the client aborted the connection during retrieval or (partially) |
|
+ * sending the response, dont't return a HTTP_SERVICE_UNAVAILABLE, since |
|
+ * this is not a backend problem. */ |
|
+ if (r->connection->aborted) { |
|
+ ap_log_rerror(APLOG_MARK, APLOG_TRACE1, rv, r, |
|
+ "The client aborted the connection."); |
|
+ conn->close = 1; |
|
+ return OK; |
|
+ } |
|
ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01075) |
|
"Error dispatching request to %s:", server_portstr); |
|
conn->close = 1;
|
|
|