From: Ilia Alshanetsky Date: Fri, 1 Aug 2003 20:20:11 +0000 (+0000) Subject: Fixed bug #22072 (Apache2 sapis do not detect aborted connections). X-Git-Tag: BEFORE_ARG_INFO~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2b768e8bdc3bdc4036f440a98c0eca5b991d3e9d;p=php Fixed bug #22072 (Apache2 sapis do not detect aborted connections). --- diff --git a/sapi/apache2filter/sapi_apache2.c b/sapi/apache2filter/sapi_apache2.c index 176a0227f4..1295d1ceef 100644 --- a/sapi/apache2filter/sapi_apache2.c +++ b/sapi/apache2filter/sapi_apache2.c @@ -91,7 +91,7 @@ php_apache_sapi_ub_write(const char *str, uint str_length TSRMLS_DC) APR_BRIGADE_INSERT_TAIL(bb, b); #endif - if (ap_pass_brigade(f->next, bb) != APR_SUCCESS) { + if (ap_pass_brigade(f->next, bb) != APR_SUCCESS || ctx->r->connection->aborted) { php_handle_aborted_connection(); } @@ -253,7 +253,7 @@ php_apache_sapi_flush(void *server_context) bb = apr_brigade_create(ctx->r->pool, ba); b = apr_bucket_flush_create(ba); APR_BRIGADE_INSERT_TAIL(bb, b); - if (ap_pass_brigade(f->next, bb) != APR_SUCCESS) { + if (ap_pass_brigade(f->next, bb) != APR_SUCCESS || ctx->r->connection->aborted) { php_handle_aborted_connection(); } } @@ -477,7 +477,7 @@ static int php_output_filter(ap_filter_t *f, apr_bucket_brigade *bb) rv = ap_pass_brigade(f->next, prebb); /* XXX: destroy the prebb, since we know we're * done with it? */ - if (rv != APR_SUCCESS) { + if (rv != APR_SUCCESS || ctx->r->connection->aborted) { php_handle_aborted_connection(); } } diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c index d496eaa946..8021064990 100644 --- a/sapi/apache2handler/sapi_apache2.c +++ b/sapi/apache2handler/sapi_apache2.c @@ -88,7 +88,7 @@ php_apache_sapi_ub_write(const char *str, uint str_length TSRMLS_DC) APR_BRIGADE_INSERT_TAIL(brigade, bucket); - if (ap_pass_brigade(r->output_filters, brigade) != APR_SUCCESS) { + if (ap_pass_brigade(r->output_filters, brigade) != APR_SUCCESS || r->connection->aborted) { php_handle_aborted_connection(); } /* Ensure this brigade is empty for the next usage. */ @@ -258,7 +258,7 @@ php_apache_sapi_flush(void *server_context) /* Send a flush bucket down the filter chain. */ bucket = apr_bucket_flush_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(brigade, bucket); - if (ap_pass_brigade(r->output_filters, brigade) != APR_SUCCESS) { + if (ap_pass_brigade(r->output_filters, brigade) != APR_SUCCESS || r->connection->aborted) { php_handle_aborted_connection(); } apr_brigade_cleanup(brigade); @@ -545,7 +545,7 @@ static int php_handler(request_rec *r) APR_BRIGADE_INSERT_TAIL(brigade, bucket); rv = ap_pass_brigade(r->output_filters, brigade); - if (rv != APR_SUCCESS) { + if (rv != APR_SUCCESS || r->connection->aborted) { php_handle_aborted_connection(); } apr_brigade_cleanup(brigade);