Commit 314600b4 authored by Ruediger Pluem's avatar Ruediger Pluem
Browse files

* 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
parent aee0b251
Loading
Loading
Loading
Loading
+15 −1
Changes for modules/http/http_request.c: 15 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -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);