From: Ruediger Pluem Date: Fri, 29 Sep 2006 13:39:53 +0000 (+0000) Subject: * Notice a timeout as an error message. This might be valuable for detecting X-Git-Tag: 2.3.0~2111 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=70cf75f60929837a4e61433f2598abb942c415c4;p=apache * Notice a timeout as an error message. This might be valuable for detecting clients with broken network connections or possible DoS attacks. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@451287 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/http/http_request.c b/modules/http/http_request.c index b8bc300d08..545d8b4d43 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -276,6 +276,7 @@ void ap_process_request(request_rec *r) apr_bucket_brigade *bb; apr_bucket *b; conn_rec *c = r->connection; + apr_status_t rv; ap_process_async_request(r); @@ -283,7 +284,20 @@ void ap_process_request(request_rec *r) bb = apr_brigade_create(c->pool, c->bucket_alloc); b = apr_bucket_flush_create(c->bucket_alloc); APR_BRIGADE_INSERT_HEAD(bb, b); - ap_pass_brigade(c->output_filters, bb); + rv = ap_pass_brigade(c->output_filters, bb); + if (rv == APR_TIMEUP) { + /* + * Notice a timeout as an error message. This might be + * valuable for detecting clients with broken network + * connections or possible DoS attacks. + * + * It is still save to use r / r->pool here as the eor bucket + * could not have been destroyed in the event of a timeout. + */ + ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, + "Timeout while writing data for URI %s to the" + " client", r->unparsed_uri); + } } if (ap_extended_status) { ap_time_process_request(c->sbh, STOP_PREQUEST);