(ap_proxy_http_process_response): When there are only headers and no body,
give the remainder of the output filters a chance by pushing an EOS bucket
through the filter stack.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@159533 13f79535-47bb-0310-9956-ffa450edef68
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.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@157478 13f79535-47bb-0310-9956-ffa450edef68
internalise the ap_reg*<->PCRE wrapper:
* configure.in: Add srclib/pcre to the include path.
* include/ap_regex.h: Renamed from include/pcreposix.h. Prefix all
constants with AP_; prefix all functions and types with ap_. Define
AP_DECLARE to nothing if necessary. Remove regcomp error codes.
* include/httpd.h: Include ap_regex.h not pcreposix.h.
(ap_pregcomp, ap_regexec, ap_regfree): s/regex_t/ap_regex_t/.
(ap_regexec, ap_regerror): Prototypes moved to ap_regex.h.
* server/util.c (regex_cleanup, ap_pregcomp, ap_pregsub, ap_pregfree):
Adjust for ap_ prefixed types. (ap_regexec, ap_regerror): Removed.
* server/Makefile.in: Build util_pcre.c.
* server/util_pcre.c: Copied from srclib/pcre/pcreposix.c; remove use
of PCRE-internals to do error mapping; rename types to add AP_/ap_
prefixes as above. Use APR includes. (ap_regerror): Use apr_snprintf.
* srclib/pcre/Makefile.in: Don't build pcreposix.c into libpcre.la.
* modules/*: Update to use new type and constant names.
PR: 27750 (part one)
Submitted by: Andres Salomon <dilinger voxel.net>, Joe Orton
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@153384 13f79535-47bb-0310-9956-ffa450edef68
in effect and we think we've started reading in the
response body. Take advantage of the fact that the
line read is still in buffer (and document that)
to allow us to add to the bb.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@151722 13f79535-47bb-0310-9956-ffa450edef68
chunked input and input filters which modify content length, and
avoid spooling arbitrary-sized request bodies in memory.
This is a merge of the proxy-reqbody branch into the trunk.
Justin had the protocol issues resolved in 2.1-dev, but not the
memory issue. The new implementation makes an effort to
stream the request body whenever possible.
Thanks to Allan Edwards for a critical bug fix, Greg Ames
for some style corrections, Justin for a needed commentary
addition, Jan Kratochvil for testing the analogous 2.0.x patch
with the SonyEricsson P900 phone, and reviews by all these
folks + JimJag.
PR: 15859
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@151168 13f79535-47bb-0310-9956-ffa450edef68
an alternative balancing method. We do not "adjust" the
byte count wrt scheme or method, simply by factoring
in the lbfactor value.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@126304 13f79535-47bb-0310-9956-ffa450edef68
ProxyPassReverse and ProxyPassReverseCookiePath.
* modules/proxy/proxy_ajp.c
(ap_proxy_ajp_request): Update call to ajp_parse_header().
* modules/proxy/ajp.h
(ajp_msg_get_string): constify argument.
(ajp_parse_header): Add conf argument.
* modules/proxy/proxy_util.c
(ap_proxy_location_reverse_map): Promoted from mod_proxy_http.
(ap_proxy_cookie_reverse_map): Promoted from mod_proxy_http;
renamed from proxy_cookie_reverse_map.
* modules/proxy/ajp_msg.c
(ajp_msg_get_string): constify argument.
* modules/proxy/proxy_http.c
(ap_proxy_location_reverse_map, proxy_cookie_reverse_map: Removed.
(process_proxy_header): Update header mapping table to reference the now
public functions.
* modules/proxy/ajp_header.c
(ajp_unmarshal_response): And conf argument. Reverse map cookies and
other headers.
(ajp_parse_header): Update call to ajp_unmarshal_response().
* modules/proxy/mod_proxy.h
(ap_proxy_location_reverse_map, ap_proxy_cookie_reverse_map): Declare
functions that have been promoted to be public.
(ap_proxy_header_reverse_map_fn): Typedef for the signature of the above
two functions (currently used in mod_proxy_http).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@124901 13f79535-47bb-0310-9956-ffa450edef68
* modules/proxy/proxy_ajp.c
(ap_proxy_ajp_request): Update call to ajp_send_header().
* modules/proxy/ajp.h
(ajp_send_header): Add a uri parameter.
* modules/proxy/ajp_header.c
(ajp_marshal_into_msgb): Add a uri parameter and use the
passed in uri instead of r->uri.
(ajp_send_header): Add a uri parameter. Update call to
ajp_marshal_into_msgb().
* modules/mappers/mod_rewrite.c
(is_absolute_uri): Add handling of 'ajp' and 'balancer' schemes.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@124584 13f79535-47bb-0310-9956-ffa450edef68
Bumped mmn, and ap module cookie, for this function rename.
It's not a deprecation, as ap_http_method would be a lovely function
name sometime in the future: to determine what the function name implies.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@123882 13f79535-47bb-0310-9956-ffa450edef68
which sometimes prevented proxy-sendchunks from working.
strlen() couldn't be used since no space had been allocated
for trailing NUL, so occasionally the T-E header field contained
garbage and a 400 error would be returned by the origin server.
The lack of a flush bucket after the final "0\r\n\r\n" was a
showstopper for my simple tests (reverse proxy to Apache 1.3 +
custom module which read the body).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@123727 13f79535-47bb-0310-9956-ffa450edef68
being percentages (and adjusting when the number don't add
up), loadfactors/lbfactors are now normalized values, so
values like:
worker a b c
lbfactor 1 1 2
work as expected (ie: a gets 25%, b gets 25% and c gets 50%).
So we could also have the above as:
worker a b c
lbfactor 25 25 50
or even
worker a b c
lbfactor 15 15 30
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@122551 13f79535-47bb-0310-9956-ffa450edef68
should return that. Otherwise we have no worker (worker
is NULL) and we should return that or else the if clause
takes care of setting worker correctly.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@111711 13f79535-47bb-0310-9956-ffa450edef68