summaryrefslogtreecommitdiff
path: root/server/util_filter.c
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2020-04-01 22:56:44 +0000
committerYann Ylavic <ylavic@apache.org>2020-04-01 22:56:44 +0000
commit343cdd9bb4488c4f0c632583af8bb4bdae0a32dc (patch)
tree94f3e8526ca2a497d660930a9b945ab2b5a7d52f /server/util_filter.c
parentfd5afc092ccd71a4e48a0f6c891ed6e1b14e187f (diff)
downloadhttpd-343cdd9bb4488c4f0c632583af8bb4bdae0a32dc.tar.gz
core: add r->flushed flag and set it when the response is sent.
By setting EOR->r->flushed in the core output filter, allow one to determine at log_transaction hook time whether the request has been fully flushed through the network, or not (network issue, filter error, n-th pipelined resposne...). Introduce the ap_bucket_eor_request() helper to get the request bound to an EOR bucket, and uses it in ap_core_output_filter() to mark the EOR's request just before destroying it, after all the previous buckets have been sent. While at it, rename the request_rec* member of struct ap_bucket_eor from "data" to "r", which makes the code clearer (not to be confused with b->data). Finally, add CustomLog format %F, showing "F" or "-" depending on r->flushed, for admins to figure out for each request. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1876017 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/util_filter.c')
-rw-r--r--server/util_filter.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/server/util_filter.c b/server/util_filter.c
index 8f34a8771c..136237a601 100644
--- a/server/util_filter.c
+++ b/server/util_filter.c
@@ -1017,17 +1017,6 @@ AP_DECLARE(apr_status_t) ap_filter_setaside_brigade(ap_filter_t *f,
*
* XXX: Should we cleanup all previous c->output_filters' setaside
* brigades?
- *
- * XXX: For each EOR we potentially destroy here, there is a
- * request handler/module which "thought" everything went well
- * on the output filters side, and returned OK. Should we mark
- * something in each EOR's request_rec (e.g. r->aborted) for
- * the log_transaction hooks to know at least?
- * Or alternatively (and possibly more robustly) have the
- * ap_core_output_filter() set r->flushed when it sees an EOR
- * up to which it sent everything (before destroying it)?
- * Anyway we can't set c->aborted here, because close_notify
- * for instance can/should still be sent out.
*/
AP_DEBUG_ASSERT(rv != APR_SUCCESS);
f->c->keepalive = AP_CONN_CLOSE;