]> granicus.if.org Git - php/commitdiff
Don't depend on the context provided by the filter (f->ctx) anymore. In
authorAaron Bannert <aaron@php.net>
Thu, 11 Apr 2002 17:32:37 +0000 (17:32 +0000)
committerAaron Bannert <aaron@php.net>
Thu, 11 Apr 2002 17:32:37 +0000 (17:32 +0000)
Apache 2 the input and output filter contexts are kept unique. We now
only depend on SG(server_context) for each request, and assume that
the same thread will process the entire request. At some point it
would be wise to separate the input and output contexts.

sapi/apache2filter/sapi_apache2.c

index d44fed1b56ec60aa3fff7fad74669a67acb20e19..f0d3b6d4cf98ac58e02cc66f1df68d5ec3365618 100644 (file)
@@ -252,9 +252,7 @@ static int php_input_filter(ap_filter_t *f, apr_bucket_brigade *bb,
                return ap_get_brigade(f->next, bb, mode, block, readbytes);
        }
 
-       ctx = SG(server_context);
-
-       if (ctx == NULL) {
+       if (SG(server_context) == NULL) {
                /* Initialize filter context */
                SG(server_context) = ctx = apr_pcalloc(f->r->pool, sizeof(*ctx));
        }
@@ -330,9 +328,9 @@ static int php_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
        ap_add_common_vars(f->r);
        ap_add_cgi_vars(f->r);
 
-       if (f->ctx == NULL) {
+       if (SG(server_context) == NULL) {
                /* Initialize filter context */
-               f->ctx = ctx = apr_pcalloc(f->r->pool, sizeof(*ctx));
+               SG(server_context) = ctx = apr_pcalloc(f->r->pool, sizeof(*ctx));
                ctx->f = f;
        }
 
@@ -365,7 +363,6 @@ static int php_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
                                }
                        }
 
-                       SG(server_context) = ctx;
                        apply_config(conf);
                        php_apache_request_ctor(f, ctx TSRMLS_CC);