1
0
mirror of https://github.com/apache/httpd.git synced 2025-11-06 16:49:32 +03:00
Commit Graph

190 Commits

Author SHA1 Message Date
Cliff Woolley
93fe62dd77 Simplify by using apr_bucket_delete(e) where possible.
(Oh, plus one tiny little loop simplification.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88337 13f79535-47bb-0310-9956-ffa450edef68
2001-02-25 23:08:52 +00:00
Greg Stein
dd9b08e321 *) Introduce "ap_conf_vector_t" type to assist with legibility and provide
some type safety. (unfortunately, our old "void*" is type-safe with the
   new one, but over time we should be better)

*) Propagate the new type to all appropriate functions.

*) Random cleaning, whitespace, stylistic nits.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88225 13f79535-47bb-0310-9956-ffa450edef68
2001-02-18 02:58:53 +00:00
Roy T. Fielding
381f88d56a Update copyright to 2001
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88184 13f79535-47bb-0310-9956-ffa450edef68
2001-02-16 04:26:53 +00:00
Greg Stein
bb282b75f7 Clean up some of the includes:
- explicitly include apr_lib.h since ap_config.h doesn't
- use apr_want.h where possible
- use APR_HAVE_ where possible
- remove some unneeded includes


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88060 13f79535-47bb-0310-9956-ffa450edef68
2001-02-10 13:05:29 +00:00
Doug MacEachern
88d3406f9a renaming various functions for consistency sake
see: http://apr.apache.org/~dougm/apr_rename.pl
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88019 13f79535-47bb-0310-9956-ffa450edef68
2001-02-08 07:45:33 +00:00
William A. Rowe Jr
d038b40a6f Fix the remaining APR_FINFO_NORM occurances. Again, followup is needed
to actually test any field outside the scope of APR_FINFO_MIN.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87935 13f79535-47bb-0310-9956-ffa450edef68
2001-01-31 23:11:05 +00:00
Bill Stoddard
2b16dac8e1 This fixes a performance problem with directory indexing on Windows.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87934 13f79535-47bb-0310-9956-ffa450edef68
2001-01-31 22:58:53 +00:00
William A. Rowe Jr
6282d6e364 Eliminate all assumptions that finfo.protection reflects the existance
or absense of a file.  finfo.filetype is defined as 0 if APR_NOFILE,
  or a non-zero value if the file could be apr_stat()'ed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87933 13f79535-47bb-0310-9956-ffa450edef68
2001-01-31 22:45:35 +00:00
Bill Stoddard
2ff91fd0b4 apr_stat() in http_request.c only needs size, type, mtime, ctime & atime values from
the file. Modify apr_stat() under windows to accomodate apr_stat( APR_FINFO_MIN)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87931 13f79535-47bb-0310-9956-ffa450edef68
2001-01-31 20:01:16 +00:00
William A. Rowe Jr
38a237ecbb Back out a bit of yesterday's patch, since the explicit return
handles this correctly.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87889 13f79535-47bb-0310-9956-ffa450edef68
2001-01-28 14:00:56 +00:00
William A. Rowe Jr
7f4a5fe7f5 Use the appropriate APR_FINFO_flags for the apr_stat/lstat/getfileinfo
calls to avoid ownership and permissions on Win32 when they are not
  required, and until they are implemented.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87873 13f79535-47bb-0310-9956-ffa450edef68
2001-01-27 21:28:28 +00:00
Ryan Bloom
e4265b4294 Cleanup the error bucket code a bit. This uses the error bucket directly
instead of using ap_bucket_read.  It also lets ap_die handle the fact that
the filter returned the error.
Submitted by:	Greg Stein


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87867 13f79535-47bb-0310-9956-ffa450edef68
2001-01-27 17:17:51 +00:00
Ryan Bloom
fd0256ed99 filters can now report an HTTP error to the server. This is done
by sending a brigade where the first bucket is an error_bucket.
This bucket is a simple bucket that stores an HTTP error and
a string.  Currently the string is not used, but it may be needed
to output an error log.  The http_header_filter will find this
bucket, and output the error text, and then return
AP_FILTER_ERROR, which informs the server that the error web page
has already been sent.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87863 13f79535-47bb-0310-9956-ffa450edef68
2001-01-27 07:13:39 +00:00
Greg Stein
c8d300bd44 Begin mod_core.h for CORE-private information. Ideally, AP_CORE_DECLARE
function decl's and CORE_PRIVATE header info should all move into this
header.

Start with moving the filter function declarations.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87808 13f79535-47bb-0310-9956-ffa450edef68
2001-01-24 02:14:23 +00:00
William A. Rowe Jr
cd1ef027c2 The changes required for the APR_FINFO_wanted argument to
apr_stat/lstat/getfileinfo.  These are -NOT- optimal, they
  are simply the required changes to get the server working.
  The size of the patch is a warning about how we need to
  really look at what we are trying to accomplish with all
  of these stat/lstat calls.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87760 13f79535-47bb-0310-9956-ffa450edef68
2001-01-20 21:42:23 +00:00
Ryan Bloom
8eedea62af Stop checking to see if this is a pipelined request if we know
for a fact that it isn't.  Basically, if r->connection->keepalive == 0.
This keeps us from making an extra read call when serving a 1.0
request.
Submitted by:	  Ryan Bloom and Greg Stein


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87738 13f79535-47bb-0310-9956-ffa450edef68
2001-01-19 17:19:51 +00:00
William A. Rowe Jr
59bbd68bec The big change. This is part 3 of the apr-util symbols rename, please
see the first commit of srclib/apr-util/include (cvs apr-util/include)
  for the quick glance at symbols changed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87731 13f79535-47bb-0310-9956-ffa450edef68
2001-01-19 07:04:36 +00:00
Ryan Bloom
02f60b7ea4 Allow modules to specify the first module for a sub-request. This allows
modules to not have to muck with the output_filter after it creates the
sub-request.  Without this change, modules that create a sub-request have
to manually edit the output_filters, and therefore skip the sub-request
output_filter.  If they skip the sub-request output_filter, then we end
up sending multiple EOS buckets to the core_output_filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87065 13f79535-47bb-0310-9956-ffa450edef68
2000-11-22 19:38:07 +00:00
Ryan Bloom
0955906aea Get Multi-Views working again. It wasn't working because we weren't
setting the path_info field correctly if we didn't find the specified
file.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87004 13f79535-47bb-0310-9956-ffa450edef68
2000-11-18 05:44:53 +00:00
William A. Rowe Jr
5ef1c8aa2d A good thing, allow W2K to perform the symlink test.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86918 13f79535-47bb-0310-9956-ffa450edef68
2000-11-11 01:20:03 +00:00
William A. Rowe Jr
cf28fad4b1 Killing ap_os_is_filename_valid. Left actual win32 code, since it is
moving into apr and the check_safe_file call.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86906 13f79535-47bb-0310-9956-ffa450edef68
2000-11-10 15:29:07 +00:00
Greg Stein
820d6de59c byterange handling simply did not work for internal redirects.
(e.g. fetch /foo/ which redirects to /foo/index.html)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86883 13f79535-47bb-0310-9956-ffa450edef68
2000-11-09 10:45:01 +00:00
Ryan Bloom
3f0129d314 Allow the core_output_filter to save data in the filter past the end of
the first request if this is a keepalive connection.  This allows us to
save the end of the first request until we have enough data from the
second request to make it worthwhile to send the responses.  In order
to do this, we need to allocate mmap's from the connection pool instead
of the request pool.  If we don't use the connection pool, then the mmap
is freed before the data is sent, because the mmap is freed at the end of
the first request.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86840 13f79535-47bb-0310-9956-ffa450edef68
2000-11-05 04:06:17 +00:00
Ryan Bloom
049e020782 Always send the EOS on the correct request. Basically, we call
ap_finalize_request_protocol on the main request, then we find the
last internally re-directed request, and send the EOS on that request.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86735 13f79535-47bb-0310-9956-ffa450edef68
2000-10-24 16:57:53 +00:00
Ryan Bloom
776482abf4 Fix internal redirects. They should have their own HTTP_HEADER filter
instance, and we need to remove the main-request's HTTP_HEADER.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86707 13f79535-47bb-0310-9956-ffa450edef68
2000-10-23 10:31:44 +00:00
Ryan Bloom
92451206d5 Sub-requests have to have a value for their request_config structure,
or we'll seg-fault.  This should set the sub-request's request_config
structure to the same exact same structure as the main request is using.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86655 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 22:14:18 +00:00
Jeff Trawick
2441a2aa49 Set the request config in the new r, not the old r.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86654 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 21:22:14 +00:00
Ryan Bloom
1af6430ebf We have to create the core_request_config structure in the core on internal
redirects.  If this isn't done, we'll seg-fault during the AP_DEBUG_ASSERT
that makes sure getline didn't leave any droppings.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86650 13f79535-47bb-0310-9956-ffa450edef68
2000-10-18 18:50:11 +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
Ryan Bloom
86a1ecbda0 Add a flush bucket type. This bucket advises filters to flush any data
they are currently storing.  There is no way we can force them to flush,
but we can advise.  This also adds the code to ap_rflush to use flush
buckets, although it isn't enabled yet.  I will enable it once we remove
buff from the code.  I also removed all calls to ap_rflush that are either
immediately before or immediately after a call to ap_finalize_protocol.
ap_finalize_protocol sends an EOS bucket, which also advises filters to
flush their data, so having both calls right next to each other is
redundant.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86619 13f79535-47bb-0310-9956-ffa450edef68
2000-10-17 00:24:36 +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
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
William A. Rowe Jr
a286d71463 Completes the port of the <Directory /> handling for Win32... there is
still a patch needed for OS2 ... Brian?


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86579 13f79535-47bb-0310-9956-ffa450edef68
2000-10-13 16:57:21 +00:00
William A. Rowe Jr
fdd0427884 A 'little' reminder about a 'little' problem.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86420 13f79535-47bb-0310-9956-ffa450edef68
2000-10-06 21:13:12 +00:00
William A. Rowe Jr
01f4c4f960 The lots of little ones... APR_IS_STATUS_condition(rv) conditional macros
replacing the majority of fallible rv == APR_condition tests.  But there
  are lots more to fix, these are the obvious ones that already did proper
  canonical error conversion.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86405 13f79535-47bb-0310-9956-ffa450edef68
2000-10-05 17:33:14 +00:00
Jeff Trawick
b7d765272e Add a bit of infrastructure which will be needed for input filtering:
1) separate filter lists hanging off the r and the c

   requests start off with the same filter list as the connection

   the input filter list is not initialized for subrequests

   internal redirects start off with the same filter list as the
   connection

2) AddInputFilter directive (blatant rip-off of Ryan's AddOutputFilter
   directive); as with AddOutputFilter, the network is implicitly to the
   right of the specified filter list; this may not be the most
   intuitive way to specify the filters; not sure yet


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86403 13f79535-47bb-0310-9956-ffa450edef68
2000-10-05 16:55:10 +00:00
Jeff Trawick
bf7aaebda6 Get rid of much of the old implementation of translating the
charset of response bodies.

ap_checkconv() is removed, except for in os/bs2000 and os/tpf.
(Anything there is questionable for 2.0 anyway.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86400 13f79535-47bb-0310-9956-ffa450edef68
2000-10-05 11:21:26 +00:00
Jeff Trawick
9fd5df3eb5 The new request_rec set up for redirects needs to pick up the
output filter chain from the conn_rec.  Any required request
filters will be inserted later.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86394 13f79535-47bb-0310-9956-ffa450edef68
2000-10-05 02:11:11 +00:00
Ryan Bloom
d1a8073aa8 Combine the calls to add the core_filter to one place. Basically, it is
safe to add the core_filter during the post_read_request, and it means
that we only have to add the filter once in the code.  This should make
it easier to add an SSL module in the future.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86307 13f79535-47bb-0310-9956-ffa450edef68
2000-09-23 18:39:30 +00:00
Jeff Trawick
eef73d8890 Get internal redirects working by initializing the output_filters
list.  We start over with only core_filter just like a fresh request.
Processing of the new URI will determine what filters (if any) are
appropriate.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86256 13f79535-47bb-0310-9956-ffa450edef68
2000-09-19 23:50:36 +00:00
Ryan Bloom
29e68ae602 Change r->filters to r->output_filters. This sets things up for us to
put input filters into Apache.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86246 13f79535-47bb-0310-9956-ffa450edef68
2000-09-18 01:24:55 +00:00
Jeff Trawick
6f6e4b504c Get rid of some unused variables introduced in recent method work.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86231 13f79535-47bb-0310-9956-ffa450edef68
2000-09-14 20:43:14 +00:00
Ryan Bloom
651d8d2a9e Fix another seg fault with allow_methods and sub requests
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86219 13f79535-47bb-0310-9956-ffa450edef68
2000-09-13 22:24:46 +00:00
Ryan Bloom
737e7b2db6 Fix a seg fault with sub requests. We must allocate space for the
sub-requests allowed_methods array before we try to copy into it.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86218 13f79535-47bb-0310-9956-ffa450edef68
2000-09-13 21:45:21 +00:00
Ken Coar
5d50a3e277 Start introducing the extension-method elements so we're not
bound to hard-coded names and a bitmask.  We still use the
	bitmask for known methods, but we also have an array for
	extension method named.  Wherever we used the M_* constants
	we need to use a routine that knows about the new structure instead.

	This is far from complete, but AFAIK this interim work doesn't
	break anything -- especially the compile.  The rest of the
	work will be added in segments; this is just a checkpoint.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86210 13f79535-47bb-0310-9956-ffa450edef68
2000-09-13 01:58:15 +00:00
Jeff Trawick
87f6dead16 Fix charset translation breakage on EBCDIC machines... the core turned
on buff's translation by default, but mod_charset_lite (when configured
to do so) turned on its own filter-based translation, resulting in
gibberish.

To be determined... whether or not mod_charset_lite should enable
translation of text objects by default (a la 1.3)...  probably... for
now you have to tell mod_charset_lite to translate.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86135 13f79535-47bb-0310-9956-ffa450edef68
2000-08-22 18:01:47 +00:00
Ryan Bloom
35d4c4a58c Initial Filtering code. This uses a bucket brigade scheme to allow modules
to add and modify data while processing a request.  The docs still need
to be updated, and a simple html page needs to be created explaining all
of this.

The only filter currently in the code is the core filter.  This filter
takes a bucket brigade and writes it to the network through the buff
structure.  In time, the buff will go away completely.

More filters will need to be written.
Submitted by:	The Apache Community
Reviewed by:	The Apache Community


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86059 13f79535-47bb-0310-9956-ffa450edef68
2000-08-12 18:45:35 +00:00
Ken Coar
62989065fe Don't skip any remaining methods just because one was already
noted.

Submitted by:	Joe Orton <joe@orton.demon.co.uk>
Reviewed by:	Ken Coar


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86050 13f79535-47bb-0310-9956-ffa450edef68
2000-08-11 16:31:02 +00:00
Ken Coar
6f7162d533 Fix another oversight: don't add an extension method to the Allow
list if it's already there.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86049 13f79535-47bb-0310-9956-ffa450edef68
2000-08-11 14:41:13 +00:00