]> granicus.if.org Git - php/commitdiff
Move server_filter to an extension-specific global
authorRasmus Lerdorf <rasmus@php.net>
Mon, 23 Oct 2000 00:52:11 +0000 (00:52 +0000)
committerRasmus Lerdorf <rasmus@php.net>
Mon, 23 Oct 2000 00:52:11 +0000 (00:52 +0000)
main/SAPI.h
sapi/apache2/mod_php4.c

index c8e8562ed9a9bf7ecabe09ca35fef5d0b3f35a45..918912b717070d2a598d5cbe2fb9b5bd5e607759 100644 (file)
@@ -102,7 +102,6 @@ typedef struct {
        char *default_charset;
        HashTable *rfc1867_uploaded_files;
        long post_max_size;
-       void *server_filter;
 } sapi_globals_struct;
 
 
index b92c50980b50d19f0e364672b19ee97f01bf9088..0ab579764e9f3699af467aa31f378b4f43984ccc 100644 (file)
@@ -91,6 +91,15 @@ module MODULE_VAR_EXPORT php4_module;
 int saved_umask;
 static unsigned char apache_php_initialized;
 
+/* per-thread globals (when the ZTS stuff gets added) */
+typedef struct {
+       ap_filter_t *server_filter;
+} php_ap_globals_struct;
+
+/* Needs to be per-thread when in threaded mode (per-server for now in pre-fork
+ * mode) */
+static php_ap_globals_struct *php_ap_globals;
+
 typedef struct _php_per_dir_entry {
        char *key;
        char *value;
@@ -122,7 +131,7 @@ static int sapi_apache_ub_write(const char *str, uint str_length)
                bb = ap_brigade_create(r->pool);
                b = ap_bucket_create_immortal(str, str_length);
                AP_BRIGADE_INSERT_TAIL(bb, b);
-               ap_pass_brigade(SG(server_filter)->next, bb);
+               ap_pass_brigade((php_ap_globals->server_filter)->next, bb);
        } else {
                ret = fwrite(str, 1, str_length, stderr);
        }
@@ -714,7 +723,8 @@ static int php_filter(ap_filter_t *f, ap_bucket_brigade *bb) {
        if (ctx == NULL) {
                f->ctx = ctx = apr_pcalloc(c->pool, sizeof(php_output_filter_ctx_t));
                ctx->b = ap_brigade_create(c->pool); /* create an initial empty brigade */
-               SG(server_filter) = f;
+               php_ap_globals = palloc(sizeof *php_ap_globals);
+               php_ap_globals->server_filter = f;
        }
 
        ap_save_brigade(f, ctx->bb, bb);