cvs: php4 /sapi/apache2filter php_apache.h sapi_apache2.c
| From: | Aaron Bannert | Date: | Thu, 11 Apr 2002 20:34:56 +0000 |
| Subject: | cvs: php4 /sapi/apache2filter php_apache.h sapi_apache2.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-11059@lists.php.net to get a copy of this message | ||
aaron Thu Apr 11 16:34:56 2002 EDT
Modified files:
/php4/sapi/apache2filter php_apache.h sapi_apache2.c
Log:
Fix a problem where php-generated data was pushed down the entire output
filter chain instead of just down the rest of the chain. This fix will
speed up some unnecessary overhead introduced in the last patch.
Suggested by: Cliff Woolley <jwoolley@apache.org>
Index: php4/sapi/apache2filter/php_apache.h
diff -u php4/sapi/apache2filter/php_apache.h:1.12 php4/sapi/apache2filter/php_apache.h:1.13
--- php4/sapi/apache2filter/php_apache.h:1.12 Thu Apr 11 15:25:08 2002
+++ php4/sapi/apache2filter/php_apache.h Thu Apr 11 16:34:56 2002
@@ -22,6 +22,7 @@
typedef struct php_struct {
int state;
request_rec *r;
+ ap_filter_t *f; /* downstream output filters after the PHP filter. */
/* Length of post_data buffer */
int post_len;
/* Index for reading from buffer */
Index: php4/sapi/apache2filter/sapi_apache2.c
diff -u php4/sapi/apache2filter/sapi_apache2.c:1.67 php4/sapi/apache2filter/sapi_apache2.c:1.68
--- php4/sapi/apache2filter/sapi_apache2.c:1.67 Thu Apr 11 15:25:08 2002
+++ php4/sapi/apache2filter/sapi_apache2.c Thu Apr 11 16:34:56 2002
@@ -49,11 +49,11 @@
apr_bucket *b;
apr_bucket_brigade *bb;
apr_bucket_alloc_t *ba;
- ap_filter_t *f; /* output filters */
+ ap_filter_t *f; /* remaining output filters */
php_struct *ctx;
ctx = SG(server_context);
- f = ctx->r->output_filters;
+ f = ctx->f;
if (str_length == 0) return 0;
@@ -183,7 +183,7 @@
if (!server_context)
return;
- f = ctx->r->output_filters;
+ f = ctx->f;
/* Send a flush bucket down the filter chain. The current default
* handler seems to act on the first flush bucket, but ignores
@@ -344,6 +344,7 @@
ap_add_cgi_vars(f->r);
ctx = SG(server_context);
+ ctx->f = f; /* safe whatever filters are after us in the chain. */
if (ctx == NULL) {
ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, f->r,
"php failed to get server context");