You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rp...@apache.org on 2006/09/29 15:39:54 UTC
svn commit: r451287 - /httpd/httpd/trunk/modules/http/http_request.c
Author: rpluem
Date: Fri Sep 29 06:39:53 2006
New Revision: 451287
URL: http://svn.apache.org/viewvc?view=rev&rev=451287
Log:
* Notice a timeout as an error message. This might be valuable for detecting
clients with broken network connections or possible DoS attacks.
Modified:
httpd/httpd/trunk/modules/http/http_request.c
Modified: httpd/httpd/trunk/modules/http/http_request.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_request.c?view=diff&rev=451287&r1=451286&r2=451287
==============================================================================
--- httpd/httpd/trunk/modules/http/http_request.c (original)
+++ httpd/httpd/trunk/modules/http/http_request.c Fri Sep 29 06:39:53 2006
@@ -276,6 +276,7 @@
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 @@
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);