incorrect status lines caused by filters which modify r->status without
resetting r->status_line, such as the built-in byterange filter.
Note: For the byterange example, the handler must set r->status_line
even though this is a 200 response. Some proxy-type modules blindly
set r->status_line as set by the origin server and thus trigger
the problem with byteranges if the origin server didn't handle the
byterange.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@379562 13f79535-47bb-0310-9956-ffa450edef68
and ensure that the chunk filter does not sent the last chunk marker in this
case.
modules/http/chunk_filter.c: Memorize HTTP_BAD_GATEWAY error buckets that
had been seen in filter context to ensure
that we do not sent the last chunk marker in
this case.
modules/proxy/proxy_util.c : Set no_cache also for main request if we are
a subrequest.
Thanks to Joe Orton and André Malo for the "invented unique pointer" trick.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@366181 13f79535-47bb-0310-9956-ffa450edef68
then
- Do not cache it.
- Signal the client that something went wrong by closing the connection
and not sending the last-chunk marker if the response was T-E chunked.
server/core_filters.c : Close the connection to the client by setting
c->keepalive to AP_CONN_CLOSE.
modules/http/chunk_filter.c : Do not send last-chunk marker in the case
the backend broke.
modules/proxy/mod_proxy_http.c: Signal that the backend connection broke.
modules/cache/mod_disk_cache.c: Respect r->no_cache for discarding the response
Submitted by: Roy T. Fielding, Jim Jagielski, Ruediger Pluem
Reviewed by: Roy T. Fielding, Jim Jagielski, Ruediger Pluem
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@357461 13f79535-47bb-0310-9956-ffa450edef68
flush bucket is pre- and postfixed by data buckets in the brigade.
Submitted by: Ruediger Pluem
Reviewed by: Justin Erenkrantz, Joe Orton, Jim Jagielski
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@357328 13f79535-47bb-0310-9956-ffa450edef68
to the EOR bucket destructor. Also, added some defensive code and comments
regarding r->pool lifetime to ap_process_http_connection.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@329664 13f79535-47bb-0310-9956-ffa450edef68
pool, rather than the request pool, because the core output filter
may need to reference the brigade immediately after deleting the
EOR bucket (and thus the request pool). This fixes a coredump
encountered when running t/TEST on an httpd compiled with
"--enable-pool-debug."
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@329484 13f79535-47bb-0310-9956-ffa450edef68
The core filter will NOT operate correctly across platforms
(even between Linux/Solaris) without setting up the conn->timeout,
so always apply the timeout when establishing the core filter.
The keep-alive-timeout is entirely an HTTP-ism, and needs to
move to the http protocol handler. Note #1; this isn't triggered
in the event mpm, but the event mpm introspects s->keep_alive_timeout
directly adding it to the pollset, so this is a non-sequitor.
Finally, once the headers are read, the named virtual host may
have a different (more/less permissive) timeout for the remainder
of the request body. This http-centric patch picks up that subtle
detail and can switch to a named-vhost timeout.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@306495 13f79535-47bb-0310-9956-ffa450edef68
It still is not 'correct' until REQUEST_CHUNKED_PASS is reimplemented
and passes some chunk headers, since we aren't echoing the entire
request. But it gets me further on testing 1.3 -> 2.0 -> 2.1 -> 2.0 -> 1.3
proxy behaviors.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@208787 13f79535-47bb-0310-9956-ffa450edef68
byterange any response which may require the consumption of arbitrary
amounts of memory.
(functional changes split from whitespace/reflow changes which will
follow in a separate commit)
Reviewed by: jerenkrantz (several moons ago)
PR: 29962
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@188797 13f79535-47bb-0310-9956-ffa450edef68
With Apache 1.3.x, it is a bit simpler as the request does
not go through ap_make_content_type().
Modules can set custom error responses but not be able to
set the charset, so they have to code the charset in the
html. Thus, it is useful to preserve 1.3.x behavior exactly.
PR: 26467
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@170354 13f79535-47bb-0310-9956-ffa450edef68
This makes binaries far easier to debug, during operation and for post-crash
.dmp analysis. Do not alter /Gs optimizations per brane.
Reviewed by: stoddard, brane
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@170253 13f79535-47bb-0310-9956-ffa450edef68
note namespace protected function names. clarify where 100 Continue is sent. remove
dire warning for calling ap_should_client_block more than once since side effects
appear to be long gone.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@158791 13f79535-47bb-0310-9956-ffa450edef68
* modules/http/http_protocol.c
(ap_meets_conditions): Allow If-None-Modified and If-Modified-Since
to interact as described in RFC2616, sections 14.26 and 13.3.4.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@153270 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
* Makefile.in: Change order of dependencies to bring in exports.o first so that
we have every symbol 'used' before the linker starts processing.
* build/rules.mk.in: Add a 'program-install' target which just copies httpd.
* server/Makefile.in, modules/http/config2.m4: Add in new file targets.
* NWGNUmakefile, libhttpd.dsp: Blind updates for Netware and Win32. (I tried.)
* server/core.c: Move core_input_filter, net_time_filter, and core_output_filter and all supporting functions to...
* server/core_filters.c (copied): ...here.
* modules/http/http_protocol.c: Move functions from here to there...namely:
* modules/http/byterange_filter.c (copied): Relocate ap_byterange_filter() and
friends.
* modules/http/chunk_filter.c (copied): Relocate chunk_filter().
* modules/http/http_etag.c (copied): Relocate ap_set_etag and ap_make_etag().
* modules/http/http_filters.c (copied): Relocate ap_http_filter(),
ap_http_header_filter(), ap_discard_request_body(), ap_setup_client_block(),
ap_should_client_block(), and ap_get_client_block().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@106692 13f79535-47bb-0310-9956-ffa450edef68
fix CLOSE_WAITs/leaked connections. The logic to deal with ap_read_request
failures got lost when merging in the HTTP pipelining fix. If ap_read_request
fails, the connection state should get set to CONN_STATE_LINGER so the MPM will
invoke lingering close. Test case: client sends a Connection: keepalive header
then closes the connection before the keepalive timeout pops.
Also add a comment to make the pipelining flow more obvious.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@106662 13f79535-47bb-0310-9956-ffa450edef68
Designed to minimize Apache's KeepAlive overhead.
This MPM depends on the current APR-trunk for new features added to
the apr_pollset interface. Currently the underlying operating
system must support KQueue or EPoll.
Status:
Should work as a drop in replacement for all non-ssl servers.
SSL Requests that use HTTP 1.1 Pipelining do not currently work.
Testing:
I have tested it with Linux 2.6, FreeBSD 5.2.1, and OS X 10.3.
Originally based on the patch by Greg Ames.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105919 13f79535-47bb-0310-9956-ffa450edef68
bottom (APR/system) up -- we can't give the client a 64bit API and
then cast it to 32bits internally without introducing security holes
on other platforms.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105572 13f79535-47bb-0310-9956-ffa450edef68