1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00
Commit Graph

925 Commits

Author SHA1 Message Date
Ruediger Pluem
63351a529b - In AP_MODE_SPECULATIVE ap_core_input_filter returns APR_SUCCESS and an empty
brigade in the case that a non blocking read from the socket returned
  APR_EAGAIN. So getting an empty brigade also shows that no data is present
  in the input filter.
  While this reduces the number of false positives for "real data" in the input
  filter the behaviour is not as good as before 533820 because if there are
  only CRLF's in the input filter we do not flush, but we should. To fix this
  it seems that a simulation of AP_MODE_EATCRLF is needed inside of
  check_pipeline.
- Destroy brigade bb at the end of the function.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@535879 13f79535-47bb-0310-9956-ffa450edef68
2007-05-07 14:20:09 +00:00
Greg Ames
2c91e92953 check_pipeline: use AP_MODE_SPECULATIVE to check for data in the input filters
to accomodate mod_ssl's input filter.  AP_MODE_EATCRLF is essentially a no-op
in that filter.

this fixes missing imbedded graphics etc when using the Event MPM with mod_ssl
with HTTP pipelining enabled in the browser.  the pipelined requests after the
first were never read from mod_ssl's input filter.  it might reduce unneeded 
flushes with other MPMs.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@533820 13f79535-47bb-0310-9956-ffa450edef68
2007-04-30 18:16:06 +00:00
Joe Orton
aa24da9d42 * modules/http/http_etag.c (etag_uint64_to_hex): Fix maximum shift
size, thanks to Ruediger.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@517654 13f79535-47bb-0310-9956-ffa450edef68
2007-03-13 11:58:12 +00:00
Joe Orton
84d5acf53a Generate etags consistently across 32-bit and 64-bit platforms:
* modules/http/http_etag.c (etag_uint64_to_hex): Renamed from
etag_ulong_to_hex; take an apr_uint64_t argument.
(ap_make_etag): Adjust to use new function and macro names.
Pass arguments directly to etag_uint64_to_hex without casting
down to unsigned long.

PR: 40064


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@517238 13f79535-47bb-0310-9956-ffa450edef68
2007-03-12 15:05:50 +00:00
Nick Kew
d14f70a89f Return METHOD_NOT_ALLOWED, not FORBIDDEN, to a TRACE request when
TraceEnable is Off.  This agrees with our documentation, and with
our Allow: header in response to OPTIONS.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@507526 13f79535-47bb-0310-9956-ffa450edef68
2007-02-14 13:34:38 +00:00
Jim Jagielski
3b048c1aeb Further refinement for PR41056 / PR 19954 (mostly-fixed in r480135.)
We assume that a successful read but an empty brigade
is NOT cause for EAGAIN. Testing may or may not
confirm this assumption, in which case that test
may be required as well.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@504559 13f79535-47bb-0310-9956-ffa450edef68
2007-02-07 14:26:37 +00:00
William A. Rowe Jr
1fc3b01590 Embed the .manifest files of all httpd binaries as a post-build
operation.  This ensures the exported (Studio 97 generated) .mak
files create a usable Apache directly from the VC 8 (Studio 2005)
command line environment.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@495126 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 05:37:20 +00:00
Ruediger Pluem
3adcae3ebc * Do not replace a Date header set by a proxied backend server.
PR: 40232


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@483633 13f79535-47bb-0310-9956-ffa450edef68
2006-12-07 20:01:07 +00:00
Jim Jagielski
c925d34bd3 Protect against any sort of non-block read that
would block. If ap_get_brigade() shows that, return
EAGAIN.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@480193 13f79535-47bb-0310-9956-ffa450edef68
2006-11-28 20:36:47 +00:00
Jim Jagielski
39e04b2132 Apply patch for PR 41056 (19954) to fix chunk
filter. Now flushes work better.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@480135 13f79535-47bb-0310-9956-ffa450edef68
2006-11-28 17:36:45 +00:00
Garrett Rooney
49291c1444 Follow up to r451287, use APR_STATUS_IS_TIMEUP instead of comparing
against APR_TIMEUP directly.

* modules/http/http_request.c
  (ap_process_request): Use APR_STATUS_IS_TIMEUP.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@451288 13f79535-47bb-0310-9956-ffa450edef68
2006-09-29 13:44:45 +00:00
Ruediger Pluem
70cf75f609 * Notice a timeout as an error message. This might be valuable for detecting
clients with broken network connections or possible DoS attacks.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@451287 13f79535-47bb-0310-9956-ffa450edef68
2006-09-29 13:39:53 +00:00
Jeff Trawick
743a621e8d Replace ap_get_server_version with ap_get_server_banner() and
ap_get_server_description().

High-level summary:

The full server version information is now included in the error log at
startup as well as server status reports, irrespective of the setting
of the ServerTokens directive.

Third-party modules must now use ap_get_server_banner() or 
ap_get_server_description() in place of ap_get_server_version().



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@440337 13f79535-47bb-0310-9956-ffa450edef68
2006-09-05 13:08:15 +00:00
Roy T. Fielding
de659cbed0 update license header text
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420983 13f79535-47bb-0310-9956-ffa450edef68
2006-07-11 20:33:53 +00:00
William A. Rowe Jr
6df9b82d20 Revert Revision 397647
While it solves the studio 2005 (we desire this), it breaks
the studio 6 packaging (we require this).  Discussion on list
of practical solutions.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@419644 13f79535-47bb-0310-9956-ffa450edef68
2006-07-06 18:36:23 +00:00
Sander Temme
646a8ad3c8 Add optional 'scheme://' prefix to ServerName directive. For
'https', mod_http returns "https" for the ap_hook_http_scheme and
     DEFAULT_HTTPS_PORT for ap_hook_default_port.  This fixes Redirect
     responses to requests for directories without a trailing slash
     when httpd runs behind a proxy or offload device that processes
     SSL.  It also enables support for Subversion in that
     configuration.  This change is completely backwards compatible
     and passes the perl-framework.  Minor mmn bump because I add a
     field to server_rec. 


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@399947 13f79535-47bb-0310-9956-ffa450edef68
2006-05-05 04:17:36 +00:00
William A. Rowe Jr
b2820e8da8 This resource /D syntax was pretty horridly imported into VS 2005,
change the quotation to ensure a peaceful transition to sln/vcproj files.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@397647 13f79535-47bb-0310-9956-ffa450edef68
2006-04-27 21:41:29 +00:00
William A. Rowe Jr
f65c47bd75 Remove all /machine:I386 references, these are getting in the way
of switching linkers from the x86 (default linker) to x64 or other
  possible target platforms.  (Also, this commit cleans up lingering
  /GX switches from the 'BASE' options that are supposed to be unused).

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@397407 13f79535-47bb-0310-9956-ffa450edef68
2006-04-27 05:30:39 +00:00
William A. Rowe Jr
663687ae8e s|/GX |/EHsc | because they were always synonyms, and Visual Studio
2005 edition complains bitterly and loudly that /GX is deprecated.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395419 13f79535-47bb-0310-9956-ffa450edef68
2006-04-19 22:51:02 +00:00
William A. Rowe Jr
862d0e231e Remove a host of dependencies upon awk, using the same template for
nearly every .rc compilation (giving the output .res file a different
  name for each component).  Adds AP_SERVER_BASEPROJECT to ap_revision.h
  so we can display the proper name of "Apache HTTP Server" as opposed
  to AP_SERVER_BASEPRODUCT (which is, and should remain, simply "Apache"
  for the server string tokens.)



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395418 13f79535-47bb-0310-9956-ffa450edef68
2006-04-19 22:47:49 +00:00
Colm MacCarthaigh
dd95d7c37c Update the copyright year in all .c, .h and .xml files
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@395228 13f79535-47bb-0310-9956-ffa450edef68
2006-04-19 12:11:27 +00:00
Mark J. Cox
50376d16bd Thiago Zaninotti reported to security@apache.org on 20060410 a possible
cross-site scripting flaw because the Expect header error message isn't
escaped.  We couldn't find a way that this could be used by an attacker
however, as they can't influence the Expect header a victim will send to a
target site.  Thiago agreed and we're therefore not treating this as a
security flaw, but it is a bug that ought to get fixed.  I'll add to 
STATUS for 1.3/2.0/2.2 shortly for acks.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@394965 13f79535-47bb-0310-9956-ffa450edef68
2006-04-18 15:30:13 +00:00
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