You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by je...@apache.org on 2005/03/14 23:23:00 UTC
svn commit: r157478 - in httpd/httpd/trunk: CHANGES
modules/proxy/mod_proxy_http.c
Author: jerenkrantz
Date: Mon Mar 14 14:22:58 2005
New Revision: 157478
URL: http://svn.apache.org/viewcvs?view=rev&rev=157478
Log:
mod_proxy: Add proxy-sendextracrlf option to send an extra CRLF at the
end of the request body to work with really old HTTP servers.
* modules/proxy/mod_proxy_http.c
(stream_reqbody_cl, spool_reqbody_cl): If proxy-sendextracrlf option is
present, append a CRLF to the body stream that isn't counted against CL.
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/CHANGES?view=diff&r1=157477&r2=157478
==============================================================================
--- httpd/httpd/trunk/CHANGES (original)
+++ httpd/httpd/trunk/CHANGES Mon Mar 14 14:22:58 2005
@@ -2,6 +2,10 @@
[Remove entries to the current 2.0 section below, when backported]
+ *) mod_proxy: Add proxy-sendextracrlf option to send an extra CRLF at the
+ end of the request body to work with really old HTTP servers.
+ [Justin Erenkrantz]
+
*) util_ldap: Keep track of the number of attributes retrieved from
LDAP so that all the values can be properly cached even if the
value is NULL. PR 33901 [Brad Nicholes]
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_http.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/proxy/mod_proxy_http.c?view=diff&r1=157477&r2=157478
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_http.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_http.c Mon Mar 14 14:22:58 2005
@@ -373,6 +373,12 @@
/* need to flush any pending data */
b = input_brigade; /* empty now; pass_brigade() will add flush */
}
+ if (apr_table_get(r->subprocess_env, "proxy-sendextracrlf")) {
+ e = apr_bucket_immortal_create(ASCII_CRLF, 2,
+ r->connection->bucket_alloc);
+ APR_BRIGADE_INSERT_TAIL(input_brigade, e);
+ }
+
status = pass_brigade(bucket_alloc, r, conn, origin, b, 1);
return status;
}
@@ -508,6 +514,11 @@
e = apr_bucket_file_create(tmpfile, 0, (apr_size_t)fsize, p,
bucket_alloc);
}
+ APR_BRIGADE_INSERT_TAIL(header_brigade, e);
+ }
+ if (apr_table_get(r->subprocess_env, "proxy-sendextracrlf")) {
+ e = apr_bucket_immortal_create(ASCII_CRLF, 2,
+ r->connection->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(header_brigade, e);
}
status = pass_brigade(bucket_alloc, r, conn, origin, header_brigade, 1);