1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-18 11:41:02 +03:00
Commit Graph

903 Commits

Author SHA1 Message Date
Jeff Trawick
2d93eb4aab Ensure that the proper status line is written to the client, fixing
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
2006-02-21 19:34:33 +00:00
Jim Jagielski
ec98060419 If the proxied response lacks a Server header, then
create one.

PR: 38002 (Bugz)
Submitted: william barker at wilshire com


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@372958 13f79535-47bb-0310-9956-ffa450edef68
2006-01-27 19:55:45 +00:00
Jim Jagielski
be7bd95754 Clarify (I hope) the comment better :)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@366554 13f79535-47bb-0310-9956-ffa450edef68
2006-01-06 19:45:36 +00:00
Jim Jagielski
c5de4ae291 As long as we have the AP_BUCKET_IS_ERROR macro, let's use it
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@366374 13f79535-47bb-0310-9956-ffa450edef68
2006-01-06 01:02:19 +00:00
Ruediger Pluem
6afae96259 * If a subrequest has a broken backend also set no_cache for the main request
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
2006-01-05 13:46:57 +00:00
Jim Jagielski
d4f879aefa Morph the ap_http_broken_backend_filter() proxy "specific"
filter to a generic http error handling output filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@358022 13f79535-47bb-0310-9956-ffa450edef68
2005-12-20 15:50:37 +00:00
Ruediger Pluem
90089065b6 * Move code for broken backend detection out of core filter into a new http
protocol filter (ap_http_broken_backend_filter) that is only run in the
  proxy case.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@357519 13f79535-47bb-0310-9956-ffa450edef68
2005-12-18 22:09:05 +00:00
Ruediger Pluem
dcc563844c * If the mod_proxy backend connection broke in the middle of the response,
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
2005-12-18 12:07:39 +00:00
Ruediger Pluem
d137691401 * Fix ap_http_chunk_filter to create correct chunks in the case that a
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
2005-12-17 09:25:09 +00:00
Justin Erenkrantz
708a277636 If a connection aborts while waiting for a chunked line, flag the connection as
errored out and send errors upwards.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@354630 13f79535-47bb-0310-9956-ffa450edef68
2005-12-07 00:21:38 +00:00
Nick Kew
24c5cde238 PR 36090
Fix recursive ErrorDocument handling


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@354118 13f79535-47bb-0310-9956-ffa450edef68
2005-12-05 18:22:29 +00:00
Jim Jagielski
08c97ba290 No functional change: remove "internal" tab spacing/formatting.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@345053 13f79535-47bb-0310-9956-ffa450edef68
2005-11-16 16:31:25 +00:00
Jim Jagielski
b72e610410 No functional change: more indenting/formatting changes due to
tabbing


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332316 13f79535-47bb-0310-9956-ffa450edef68
2005-11-10 16:03:23 +00:00
Jim Jagielski
5061d9fa92 No functional Change: Removing trailing whitespace. This also
means that "blank" lines consisting of just spaces or
tabs are now really blank lines


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332306 13f79535-47bb-0310-9956-ffa450edef68
2005-11-10 15:11:44 +00:00
Jim Jagielski
5d2fae4818 No functional change: simple detabbing of indented code.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@332305 13f79535-47bb-0310-9956-ffa450edef68
2005-11-10 15:05:51 +00:00
Brian Pane
5a653ac440 Moved the extended_status scoreboard update from ap_process_http_connection
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
2005-10-30 22:55:35 +00:00
Brian Pane
f0538ad65c Allocate the brigade containing the EOR bucket from the connection
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
2005-10-29 21:11:51 +00:00
Brian Pane
cb0e5db86f Async write completion for Event MPM
(backported from async-dev branch to 2.3 trunk)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@327945 13f79535-47bb-0310-9956-ffa450edef68
2005-10-24 03:33:14 +00:00
Brian Pane
158559eacb Redesign of request cleanup and logging to use End-Of-Request bucket
(backport from async-dev branch to 2.3 trunk)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@327925 13f79535-47bb-0310-9956-ffa450edef68
2005-10-24 02:39:49 +00:00
Brian Pane
4db6998015 Add new connection states for handler and write completion
(backport from async-dev branch to 2.3 trunk)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@327870 13f79535-47bb-0310-9956-ffa450edef68
2005-10-23 22:20:59 +00:00
André Malo
9c1115eb44 * modules/http/http_request.c
(ap_allow_methods): add missing va_end call


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@321500 13f79535-47bb-0310-9956-ffa450edef68
2005-10-15 21:37:38 +00:00
William A. Rowe Jr
7e2a5490d1 NET_TIME, as a standalone feature, was a horrid idea.
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
2005-10-06 01:29:42 +00:00
William A. Rowe Jr
e279db098e Spare us a wasted variable, csd is initialized null, acting
as the 'csd_set' indicator.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@300198 13f79535-47bb-0310-9956-ffa450edef68
2005-10-06 00:46:23 +00:00
Ian Holsman
8c1e315d3f Doxygen fixup / cleanup
submited by: Neale Ranns neale ranns.org
reviewed by: Ian Holsman



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@263931 13f79535-47bb-0310-9956-ffa450edef68
2005-08-28 23:03:59 +00:00
Joe Orton
623fe122ec * modules/http/byterange_filter.c (ap_byterange_filter): Update some
comments.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@231030 13f79535-47bb-0310-9956-ffa450edef68
2005-08-09 13:16:46 +00:00
Joe Orton
4320ae82b2 * modules/http/http_filters.c (ap_send_http_trace): Silence gcc
variable-may-be-used-uninitialized warnings.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@219696 13f79535-47bb-0310-9956-ffa450edef68
2005-07-19 14:34:28 +00:00
William A. Rowe Jr
d90cbe8650 Plug AllowTrace extended|on|off into proxy and http core.
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
2005-07-01 19:59:59 +00:00
Joe Orton
40b2f8d2c5 * modules/http/byterange_filter.c (ap_byterange_filter): No functional
changes: reflow/reformat after r188797.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@189559 13f79535-47bb-0310-9956-ffa450edef68
2005-06-08 08:44:37 +00:00
Joe Orton
ac40284b85 * modules/http/byterange_filter.c (ap_byterange_filter): Refuse to
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
2005-06-07 15:32:10 +00:00
Jeff Trawick
e9323f0ebd EBCDIC: Handle chunked input from client or, with proxy, origin
server.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@178262 13f79535-47bb-0310-9956-ffa450edef68
2005-05-24 19:49:06 +00:00
Jeff Trawick
7ae218a5bf Support the suppress-error-charset setting, as with Apache 1.3.x.
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
2005-05-16 10:41:42 +00:00
William A. Rowe Jr
20d06d7a06 Reintroduce stack frame construction with /Oy- (removal was implied by /O2).
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
2005-05-15 19:11:57 +00:00
Paul Querna
af9ae7c2d7 Remove ap_method_list_do and ap_method_list_vdo as previously mentioned dev@httpd.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@164536 13f79535-47bb-0310-9956-ffa450edef68
2005-04-25 05:19:18 +00:00
Greg Ames
ce90c8338d update comments for *_client_block functions.
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
2005-03-23 16:03:55 +00:00
Sander Striker
9e2046178c More tweaks primarily driven by caching.
* 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
2005-02-10 15:41:23 +00:00
Justin Erenkrantz
905cdf9f0b Update copyright year to 2005 and standardize on current copyright owner line.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@151408 13f79535-47bb-0310-9956-ffa450edef68
2005-02-04 20:28:49 +00:00
Jim Jagielski
9e6b472772 Keep track of time taken to process requests again.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@149550 13f79535-47bb-0310-9956-ffa450edef68
2005-02-02 19:32:18 +00:00
William A. Rowe Jr
d962fcfc8b FINALLY Correct ap_http_method()! It is NOT a method, it's a SCHEME!
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
2005-01-02 05:33:44 +00:00
Paul Querna
3afc45863a * Style fixes only. No functional changes. Remove two tabs. Fix an If. Split a String.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@111719 13f79535-47bb-0310-9956-ffa450edef68
2004-12-13 16:13:06 +00:00
Geoffrey Young
78c1d9dc3e undo changes made in 111386 due to veto
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@111432 13f79535-47bb-0310-9956-ffa450edef68
2004-12-09 21:09:26 +00:00
Geoffrey Young
fe1bfd7775 add response code 226 constant (HTTP_IM_USED) and status
line ("226 IM Used").  PR 31128.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@111386 13f79535-47bb-0310-9956-ffa450edef68
2004-12-09 14:16:16 +00:00
Joe Orton
671710004d * modules/http/mod_core.h: Prototype ap_http_chunk_filter.
* modules/http/chunk_filter.c (ap_http_chunk_filter): Rename from
chunk_filter.

* modules/http/http_core.c (chunk_filter): Remove the original copy.
(register_hooks): Register ap_http_chunk_filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@109497 13f79535-47bb-0310-9956-ffa450edef68
2004-12-02 13:25:12 +00:00
Justin Erenkrantz
439221058c Initial pass at refactoring some files to eliminate our 150K C source behemoths.
* 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
2004-11-27 08:07:44 +00:00
Greg Ames
b5e9415869 ap_process_http_async_connection (used by the Event MPM):
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
2004-11-26 21:21:42 +00:00
Paul Querna
95d5391b9f Compile Fix for Netware Port with CodeWarrior.
Noticed By: <normw@bocnet.com.au>


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@106072 13f79535-47bb-0310-9956-ffa450edef68
2004-11-21 05:53:38 +00:00
Paul Querna
34959f29db The Event MPM.
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
2004-11-20 02:52:36 +00:00
Joe Orton
c36ecfa64f Remove the .cvsignore files.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105796 13f79535-47bb-0310-9956-ffa450edef68
2004-11-19 09:07:29 +00:00
Roy T. Fielding
c76dd4ecef veto and revert win64 patch: 64bit changes must percolate from the
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
2004-10-23 22:39:53 +00:00
Allan K. Edwards
6c775f9a3c WIN64: API changes to clean up Windows 64bit compile warnings
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105545 13f79535-47bb-0310-9956-ffa450edef68
2004-10-22 15:22:05 +00:00
Joe Orton
52c225b0db * modules/http/http_protocol.c (ap_http_filter): Always fail if the
Content-Length header is an empty string; previously this was only
an error with some strto* implementations.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105341 13f79535-47bb-0310-9956-ffa450edef68
2004-09-29 14:38:42 +00:00