You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by mi...@apache.org on 2001/04/10 22:44:18 UTC
cvs commit: httpd-proxy/module-2.0 mod_proxy.h proxy_http.c proxy_util.c
minfrin 01/04/10 13:44:18
Modified: module-2.0 mod_proxy.h proxy_http.c proxy_util.c
Log:
Make sure the filter stack in a reused downstream connection is reset
so we don't get lots of DECHUNK filters when we don't want them.
Revision Changes Path
1.44 +1 -0 httpd-proxy/module-2.0/mod_proxy.h
Index: mod_proxy.h
===================================================================
RCS file: /home/cvs/httpd-proxy/module-2.0/mod_proxy.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- mod_proxy.h 2001/04/10 19:52:39 1.43
+++ mod_proxy.h 2001/04/10 20:44:15 1.44
@@ -243,5 +243,6 @@
int ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr);
int ap_proxy_pre_http_connection(conn_rec *c, request_rec *r);
apr_status_t ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, char *buff, size_t bufflen);
+void ap_proxy_reset_output_filters(conn_rec *c);
#endif /*MOD_PROXY_H*/
1.53 +4 -0 httpd-proxy/module-2.0/proxy_http.c
Index: proxy_http.c
===================================================================
RCS file: /home/cvs/httpd-proxy/module-2.0/proxy_http.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- proxy_http.c 2001/04/10 19:52:39 1.52
+++ proxy_http.c 2001/04/10 20:44:16 1.53
@@ -313,6 +313,9 @@
origin = conf->connection;
new = 0;
+ /* reset the connection filters */
+ ap_proxy_reset_output_filters(origin);
+
/* XXX FIXME: If the socket has since closed, change new to 1 so
* a new socket is opened */
}
@@ -699,6 +702,7 @@
if ((buf = ap_proxy_removestr(r->pool, buf, "chunked"))) {
apr_table_set(r->headers_out, "Transfer-Encoding", buf);
}
+/* FIXME: Make sure this filter is removed if this connection is reused */
ap_add_input_filter("DECHUNK", NULL, rp, origin);
}
1.52 +19 -0 httpd-proxy/module-2.0/proxy_util.c
Index: proxy_util.c
===================================================================
RCS file: /home/cvs/httpd-proxy/module-2.0/proxy_util.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- proxy_util.c 2001/04/10 19:52:40 1.51
+++ proxy_util.c 2001/04/10 20:44:16 1.52
@@ -1131,6 +1131,25 @@
}
+/* remove other filters (like DECHUNK) from filter stack */
+void ap_proxy_reset_output_filters(conn_rec *c)
+{
+ ap_filter_t *f = c->output_filters;
+
+ while (f) {
+ if (!strcasecmp(f->frec->name, "CORE") ||
+ !strcasecmp(f->frec->name, "CONTENT_LENGTH") ||
+ !strcasecmp(f->frec->name, "HTTP_HEADER")) {
+ f = f->next;
+ continue;
+ }
+ else {
+ ap_remove_output_filter(f);
+ f = f->next;
+ }
+ }
+}
+
#if defined WIN32
static DWORD tls_index;