1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-13 21:42:17 +03:00
Commit Graph

357 Commits

Author SHA1 Message Date
Ryan Bloom
4baadb8ef1 This removes all BUFF's from the HTTP proxy. This code is relatively
ugly, but it does proxy pages.  This even fixes the content-type bug
that I introduced yesterday sometime.  As soon as BUFF is removed from
the FTP proxy, the buff.c and buff.h files need to go away.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86988 13f79535-47bb-0310-9956-ffa450edef68
2000-11-17 00:19:30 +00:00
Greg Stein
51b515f614 use apr_size_t
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86977 13f79535-47bb-0310-9956-ffa450edef68
2000-11-16 00:40:49 +00:00
Ryan Bloom
7e991c23f8 Stop the default_handler from trying to deal with HEAD requests. By doing
this, the content-length filter can determine the C-L before we send the
response, and we get a better response.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86955 13f79535-47bb-0310-9956-ffa450edef68
2000-11-14 06:11:24 +00:00
Jeff Trawick
caa9d3d13b Include ap_config.h to get the definition of AP_DECLARE_DATA.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86950 13f79535-47bb-0310-9956-ffa450edef68
2000-11-14 02:30:35 +00:00
Ryan Bloom
b62a882802 Port mod_info to 2.0. This is basically a complete re-write to use the
config tree instead of re-reading the config file.  As a part of this
change, the config tree needs to be exposed to modules as ap_conftree.
Submitted by:	Ryan Morgan <rmorgan@covalent.net>
Reviewed by:	Ryan Bloom


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86948 13f79535-47bb-0310-9956-ffa450edef68
2000-11-14 01:55:26 +00:00
David Reid
3dd5f4ad55 Bring the apr_in_addr type into line with naming conventions and make changes
where appropriate.  At least on my system virtual hosts seem to still work :)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86895 13f79535-47bb-0310-9956-ffa450edef68
2000-11-10 00:58:25 +00:00
Ryan Bloom
4ee1d8eb59 Remove BUFF from the main server. :-) The buff code needs to remain as
a part of the server until the proxy is purged of BUFF however.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86878 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 00:37:06 +00:00
David Reid
2318bf5ab4 Missed these first time round... More apr_port_t changes.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86867 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 11:42:21 +00:00
David Reid
33aabfee3f Start of moving to apr_port_t in the server code. This will probably the first
of a few...


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86866 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 11:35:38 +00:00
Greg Stein
2b00b3a71c fix the byterange filter.
there is still some bogosity in there (huge buffer allocs!), and some
optimizations to be made, but this appears to fix byterange handling.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86865 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 11:22:07 +00:00
Ryan Bloom
16d27f0da6 The byte-ranges filter. This looks like it should work, but the
Acrobat plug-in doesn't like it for some reason.  This does work better
than what we currently have, because at least it returns all of the
requested data.  This basically removes all BUFFs from the byte-range
code and removes all of the byte-range code from the default-handler.

Byte-ranges are now handled by a filter, which makes sense, and it allows
us to handle byte-ranges for all requests, not just files.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86864 13f79535-47bb-0310-9956-ffa450edef68
2000-11-08 06:24:47 +00:00
Greg Stein
754480fd2d Use apr_off_t for the content length, rather than long. Propagate through
the byterange handling and ap_set_content_length().

[ ap_each_byterange() remains as an apr_size_t* so we don't mess up callers ]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86860 13f79535-47bb-0310-9956-ffa450edef68
2000-11-07 22:41:09 +00:00
Sascha Schumann
6d89d14d4e Remove REQUEST_CHUNKED_PASS and change ap_discard_request_body()
to use REQUEST_CHUNKED_DECHUNK.

Because of this change, the need for handle_request_body() is gone,
so we remove that as well.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86827 13f79535-47bb-0310-9956-ffa450edef68
2000-11-03 17:34:59 +00:00
Ryan Bloom
d95eb05d77 Create a feature macro that determines if Autoconf was used to configure
the server.  The ap_ugly_hack variable is only valid if Autoconf was used
for the configuration.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86802 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 18:51:08 +00:00
William A. Rowe Jr
f95da0f525 Get win32 building again... we need something just a little more sophisticated here
Submitted by:	John Sterling <sterling@covalent.net
Reviewed by:	rbb, wrowe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86796 13f79535-47bb-0310-9956-ffa450edef68
2000-11-02 04:44:43 +00:00
Sascha Schumann
8b890b1157 Comment fixes.. just to get them out of my tree
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86788 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 18:10:15 +00:00
Ryan Bloom
4b1eefe1f4 Clean up the http filter a lot. Instead of sending a bucket per header,
we now create a single bucket that has all of the headers and send that.
One known issue is that this limits the headers to 8k, but it is a minor
patch to fix that.

This also stops us from exporting ap_send_header_field.  This function no
longer makes sense to export.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86780 13f79535-47bb-0310-9956-ffa450edef68
2000-11-01 00:52:06 +00:00
Jeff Trawick
ad7545f0b4 Compute the content length (and add appropriate header field) for
the response when no content length is available and we can't use
chunked encoding.

This is going to be painful when the response body is huge, so I
suspect we'll have additional criteria in the future.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86775 13f79535-47bb-0310-9956-ffa450edef68
2000-10-31 12:30:22 +00:00
Ryan Bloom
511d2c481c This is an ugly little hack to allow DSO modules to work. This basically
forces Apache to link in all of the APR functions whether they are used
by any static modules or not.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86770 13f79535-47bb-0310-9956-ffa450edef68
2000-10-30 23:08:27 +00:00
Ryan Bloom
7d9a83ff92 Make mod_auth_db compile cleanly in 2.0
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86768 13f79535-47bb-0310-9956-ffa450edef68
2000-10-30 20:13:04 +00:00
Jeff Trawick
d7b3bb82c5 Get rid of some outdated character set translation cruft.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86753 13f79535-47bb-0310-9956-ffa450edef68
2000-10-26 11:34:04 +00:00
Jeff Trawick
6217bc8f88 Introduce ap_xlate_proto_{to|from}_ascii() to clean up some of
the EBCDIC support.  They are noops on ASCII machines, so this
type of translation doesn't have to be surrounded by #ifdef
CHARSET_EBCDIC.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86751 13f79535-47bb-0310-9956-ffa450edef68
2000-10-26 10:48:28 +00:00
Jeff Trawick
66f97567e9 Get rid of the xlate version of ap_md5_digest()
since we don't compute digests of filtered (e.g., translated)
response bodies this way anymore.  (Note that we don't do it at
all at the present; somebody needs to write a filter to do so.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86750 13f79535-47bb-0310-9956-ffa450edef68
2000-10-25 18:54:20 +00:00
Jeff Trawick
2c0d3fd6cf Fix a typo in a comment.
Submitted by:	Chris Pepper <pepper@mail.reppep.com>
Reviewed by:	Jeff Trawick


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86746 13f79535-47bb-0310-9956-ffa450edef68
2000-10-25 15:03:52 +00:00
Jeff Trawick
c19cd1fcbf Provide a bit of doc for the hackish^H^H^H^H^H^H^Hwonderful filter
types I introduced yesterday.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86741 13f79535-47bb-0310-9956-ffa450edef68
2000-10-25 10:39:04 +00:00
Jeff Trawick
8834cc5296 Introduce more filter types. This gets chunking of output working
again by ensuring that the chunk filter gets added after the http
headers filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86739 13f79535-47bb-0310-9956-ffa450edef68
2000-10-25 00:38:04 +00:00
William A. Rowe Jr
2bf04d2053 Get everything working with suexec patches again.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86731 13f79535-47bb-0310-9956-ffa450edef68
2000-10-24 11:54:29 +00:00
Manoj Kasichainula
b1fb90877e Add back suexec support.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86712 13f79535-47bb-0310-9956-ffa450edef68
2000-10-23 15:30:57 +00:00
Ryan Bloom
a90cfa54f1 Make lingering close access the socket directly, instead of relying on
BUFF.  This has been tested, but all we can determine is that it doesn't
fail, not that it works.  This needs to be tested much better.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86709 13f79535-47bb-0310-9956-ffa450edef68
2000-10-23 10:46:20 +00:00
Jeff Trawick
807983f2e7 namespace-protect dechunk_filter and http_filter
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86699 13f79535-47bb-0310-9956-ffa450edef68
2000-10-22 13:09:23 +00:00
Jeff Trawick
ddf387fdfb Fix the return type of ap_http_header_filter().
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86698 13f79535-47bb-0310-9956-ffa450edef68
2000-10-22 12:53:59 +00:00
Bill Stoddard
4fd88db134 Fix Win32 compile break introduced by the http_header filter code.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86697 13f79535-47bb-0310-9956-ffa450edef68
2000-10-22 10:34:05 +00:00
Ryan Bloom
1c795234e1 Add a way to remove output filters. This is used by http_header_filter to
remove itself once it has actually sent the headers.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86690 13f79535-47bb-0310-9956-ffa450edef68
2000-10-21 17:22:28 +00:00
Ryan Bloom
9fbdac023f Hack headers to work semi-properly. This is a hack that will need to be
fixed, but it is good enough for now.  The idea is that headers shouldn't
flow through the BUFF anymore.  Now, we have a header filter that is
called at the end of the request-filter chain.  This filter writes the
headers directly to the connection filters.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86687 13f79535-47bb-0310-9956-ffa450edef68
2000-10-21 14:20:14 +00:00
Jeff Trawick
96cf82e63b Input filters and ap_get_brigade() now have a input mode parameter
(blocking, non-blocking, peek) instead of a length parameter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86684 13f79535-47bb-0310-9956-ffa450edef68
2000-10-21 13:20:36 +00:00
Greg Stein
7dbbeb4504 somebody was a Very Bad Boy when they inserted casts into this function.
casting away the const was absolutely wrong... the warnings were saying the
return value type needed to be fixed. did that and torched the casts.

who still thinks casts are a good idea? :-)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86668 13f79535-47bb-0310-9956-ffa450edef68
2000-10-19 10:43:03 +00:00
Ryan Bloom
140586d14f Namespace protect the rest of the macros defined by ap_config.h
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86661 13f79535-47bb-0310-9956-ffa450edef68
2000-10-19 00:05:00 +00:00
Ryan Bloom
d85bbfb847 This begins to remove BUFF from the server. The idea is to go very slowly
with this.  To begin with, we store both the socket and the BUFF in the
conn_rec.  Functions are free to use which ever they want, in the end all
of the data goes to the same place.  This modifies all of the MPMs except
Windows.  All of the Unix MPMs are working, but the others need to be
tested.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86651 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 19:12:16 +00:00
Jeff Trawick
7eecd8064e ap_get_client_block() now uses a brigade in core_request_config
instead of a brigade in core_dir_conf.  For now, getline() and
ap_get_client_block() share a brigade.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86647 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 17:42:44 +00:00
William A. Rowe Jr
4743e5fa7a Fix a broken thing
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86645 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 17:38:30 +00:00
Greg Ames
2311f5561e Add a core_request_config so we have a safe semi-hidden place to save core data
that lives across function calls during a single request.  Change getline() to
take a request_rec parm (rather than a conn_rec) so we can access the
core_request_config.

This is in preparation for adding look-ahead functionality to getline(), so it
can support header line folding once again.  I'm committing these changes first
so the core_request_config can be used elsewhere (i.e. ap_get_client_block).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86642 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 15:21:32 +00:00
William A. Rowe Jr
74ff3bb990 Make things a little clearer in reaction to the _snames snafus.
Submitted by:	Greg Stein
Reviewed by:	William Rowe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86626 13f79535-47bb-0310-9956-ffa450edef68
2000-10-17 13:26:55 +00:00
Jeff Trawick
ce0a65bfd6 Rename output filters field ("filters") in core_dir_config to
"output_filters" for consistency with the name of the input
filters field ("input_filters").


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86623 13f79535-47bb-0310-9956-ffa450edef68
2000-10-17 01:35:12 +00:00
Jeff Trawick
61a74c6f66 Capitalize AP_DEBUG_ASSERT(). All macros should shout, even
if their forbearers (e.g., ap_assert()) did not.
Submitted by:	Greg Stein


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86621 13f79535-47bb-0310-9956-ffa450edef68
2000-10-17 01:04:33 +00:00
Ryan Bloom
25535f86ec Add a sub-request filter. This filter just strips the EOS from the
brigade generated by the sub-request.  If this is not done, then the
main-request's core_output_filter will get very confused, as will any other
filter in the main-request filter-stack that looks for EOS.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86618 13f79535-47bb-0310-9956-ffa450edef68
2000-10-16 23:15:55 +00:00
Jeff Trawick
eb7793f871 input filtering changes:
get dechunking working
  verify that infrastructure for input filters works
    (use existing AddInputFilter directive)

Unlike with my previous patch, ap_get_client_block() saves state between
calls in the core's per-request dir config.

Unlike with my previous patch, HTTP_IN keeps a count of remaining bytes
in the conn_rec.  Code that needs to prod it to deliver a certain amount
of request body plays with conn_rec->remain directly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86613 13f79535-47bb-0310-9956-ffa450edef68
2000-10-16 19:11:53 +00:00
Jeff Trawick
c06c057a8d Get rid of some old code related to the way that character set translation
of protocol data and bodies was performed in the past.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86612 13f79535-47bb-0310-9956-ffa450edef68
2000-10-16 18:00:49 +00:00
William A. Rowe Jr
d6490633eb Renamed all MODULE_EXPORT symbols to AP_MODULE_DECLARE and all symbols
for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
  and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
  All _VAR_ flavors changes to _DATA to be absolutely clear.
  Thank you Greg, for the most obvious suggestion.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86609 13f79535-47bb-0310-9956-ffa450edef68
2000-10-16 06:05:15 +00:00
Ryan Bloom
15fe310d97 Get non-chunked input body filtering working with an EOS bucket. The
basic design has ap_setup_client_block setting a field in the conn_rec
which tells http_filter how much data is in the body (with chunking this
will represent how much data is in the chunk).  The ap_get_client_block
then calls down the stack with the maximum amount of data that it can
receive back.  When http_filter reads all of the data, it adds an eos
bucket to the end of the brigade.  ap_get_client_block continues to read
data until it gets the eos bucket.  This allows filters to increase the
size of the body data.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86586 13f79535-47bb-0310-9956-ffa450edef68
2000-10-14 04:37:22 +00:00
Jeff Trawick
26db2ffb0c Introduce ap_debug_assert() macro, like ap_assert() but only active if
AP_DEBUG is defined.

ap_get_client_block():
. avoid some cases where we leak a temporary bucket brigade
. clean up/fix the logic to copy a brigade into the caller's buffer;
  the wrong length was used in some cases
. add an AP_DEBUG-only assertion for some assumptions made regarding
  the brigade returned by the filters

Submitted by:	partly by Greg Stein, but of course anything bad is mine


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86583 13f79535-47bb-0310-9956-ffa450edef68
2000-10-13 18:39:18 +00:00