Ryan Bloom [Wed, 12 Sep 2001 19:50:56 +0000 (19:50 +0000)]
Remove mod_tls. All of the filters in mod_tls can now be found in
mod_ssl. Also, mod_ssl is being kept up to date, while mod_tls is not,
so that if you use mod_tls, there are a lot of bugs, both security related,
and otherwise.
Ryan Bloom [Tue, 11 Sep 2001 18:38:21 +0000 (18:38 +0000)]
A very small optimization to the OLD_WRITE logic. This just makes us store
a pointer to the OLD_WRITE frec, and instead of using strcmp or strcasecmp,
we can just do a simple pointer comparison. This optimization is also
available to other modules.
Bill Stoddard [Mon, 10 Sep 2001 18:09:56 +0000 (18:09 +0000)]
Introduce the notion of a multi part cache object. Part of the cache_object
is common across any cache implementation, the other part is private to
the particular implementation (eg, mem_cache_object_t/mod_mem_cache).
Use a cache_handle_t allocated out of the request pool to hold references
to the callback functions and common cache object.
The cache_handle_t contains implementation specific callback functions and
a reference to a common cache_object_t. The cache_object_t contains
a reference to an implementation specific cache object extension (mem_cache_object_t
for example).
All this simplifies managing the callback function pointers (don't want to
save them in each cache entry) and collections of cache_object_t keyed
to a single url.
Ryan Bloom [Mon, 10 Sep 2001 13:45:12 +0000 (13:45 +0000)]
It is completely bogus that I feel I have to do this. I remain -1 for
doing this, but I won't veto it. I am 100% with JimJ on this. We are
making this decision at the wrong time, and for the wrong reasons. I
do not believe that this module ever belongs in the core, and I haven't
heard a single valid reason for using it. Even the SSL reason has been
removed in my mind, due to the fact that we are now thinking of
removing mod_gz if the correct cipher is used, because the correct cipher
will compress for us.
This patch is insufficient (highlights an existing problem) for OS2 and
Netware, especially, and any other platform with odd native requirements
for the PATH_TRANSLATED variable (where it should look like a filesystem
entity for non-unixish cgi's.)
The per_dir_merge overlay of AddInputFilter/AddOutputFilter must
absolutely replace a prior definition for the same file extension.
Picture AddOutputFilter Includes .html in a directory, and needing
to replace that behavior in a subdirectory which does not contain
SSI html files. This behavior must remain consistent to the other
mime behaviors, as documented in manual/mod/mod_mime.html
Ryan Bloom [Sat, 8 Sep 2001 01:10:29 +0000 (01:10 +0000)]
The threaded MPM not working is not because of httpd or APR. Threads
are horribly broken on FreeBSD, and there is nothing we can do to fix
them. Unless, of course, somebody wants to contribute code to the
FreeBSD project.
Jeff Trawick [Fri, 7 Sep 2001 14:01:26 +0000 (14:01 +0000)]
We finally got APR working well enough to support buffered reading
of .var files, so the .var file issue is gone.
The brokenness of the threaded MPM on FreeBSD is a FreeBSD issue, not
an Apache issue, as far as anyone can tell. I don't think this should
be in the STATUS file at all, unless somebody thinks we should issue a
big honking warning from configure if somebody tries to enable threaded.
Optimize location_walk. We build an array of incremental matches, and
on attempting a subreq/redirect or simply a second pass, and for each
match in series, if the section is a match, we reuse the merge result
for that section.
Ryan Bloom [Thu, 6 Sep 2001 15:04:01 +0000 (15:04 +0000)]
I am veto'ing this, for now at least. I will support making mod_gz
a separate sub-project of httpd, and possibly rolling it into a later
release of 2.0, but now is not the time to do this.
I didn't crawl the list looking for the complete set of votes, but here we
go. Nominally, this issue would be under "lazy approval" since no changes
are made to APIs, directives, or significant size changes in the runtime.
However, the nature of the discussions effectively calls for "consensus
approval" -- three binding +1 votes and no vetoes.
Ryan Bloom [Tue, 4 Sep 2001 22:32:56 +0000 (22:32 +0000)]
If the user doesn't specify a layout, then just use the Apache
layout. This means that we don't have to re-specify options that are
already in config.layout.
Fix breakage from Brian Pane's util_filter switch to hash tables.
There were some places that were expecting what you put into frec
would be what frec->name would be. Not true anymore.
There are enough other places that were already doing the strcasecmp
that it makes more sense to just make it all strcasecmp across the
board rather than changing the UPPERCASE to lowercase.
(None of these with the exception of old_filter look to be in the
critical path anyway...)
The ap_add_input_filter/ap_add_output_filter functions do an O(n) scan
through the list of registered filters. This patch replaces the linear
list with a hash table for better performance.
Submitted by: Brian Pane <bpane@pacbell.net>
Reviewed by: Justin Erenkrantz
Ryan Bloom [Tue, 4 Sep 2001 01:38:01 +0000 (01:38 +0000)]
Back out the 1.45 change to util_script.c. This change made
us set the environment variable REQUEST_URI to the redirected
URI, instead of the originally requested URI.
Added a little more detail to the docs based on some comments from Bill
Rowe. More to come, but this clarified a point that I had to track
down earlier, and may save someone some time.
Ryan Bloom [Mon, 3 Sep 2001 03:07:42 +0000 (03:07 +0000)]
Fix the interaction between --prefix and --with-layout. We were
over-writing the specified prefix during --with-layout processing. By
keeping a copy of the specified prefix, and resetting it after the
layout processing, this is fixed.
PR: 7755
- Remove extra include_module line - dunno how that got there.
- make lazy_eval_sentinel a const
- create #define for &lazy_eval_sentinel (LAZY_VALUE)
- create get_include_var function (get, check, get real value if lazy)
- cleanup the printenv call to be a bit more streamlined (can't use
get_include_var here since it is iterating through the table here -
well, you could do that, but I won't...)
Make mod_include check for BYTE_COUNT_THRESHOLD on a per-bucket basis
rather than on a per-character basis. A significant amount of time
was spent checking the limit. A better place to check for the threshold
is when we read the bucket in not as we read each character in the bucket.
If a bucket manages to be 200MB, it is not this code's problem as it
is a mere filter.
I ran this with the mod_include stuff in httpd-test and it looks good
from here.
Submitted by: Brian Pane <bpane@pacbell.net>
Reviewed by: Justin Erenkrantz, Ryan Bloom, Greg Stein, Cliff Woolley,
Paul Reder, etc, etc, etc...
After some consideration - Location walk is always required (before and
after any other map_to_storage operations.) Therefore, initialize any
NULL r->per_dir_config at this phase (the earliest necessary point.)
We hadn't prepared for this possibility that someone didn't set up the
r->per_dir_config (which the subreq's didn't). Since we are first in
line, we will handle it if need be.
These no longer work, and even though most of this whole
<IfModule mod_proxy.c> section doesn't work today, at least
get the syntax right for <Proxy > blocks.
Can it be this simple? No, probably not, but this fast-hack will get
us going again for a while.
We are currently rejecting some internal file_sub_req()'s in the
translate phase. I don't like this hack because of risks it potentially
exposes, but for today, if we have a filename - and we are a subrequest,
then let it fly without further mapping. This allows us to serve up
the default "/" request (run through mod_dir->mod_negotiation->mod_mime)
without a 400 error. The right solution is to set up some traps and
escapes for the subreq mechanism, possibly with a subreq translate hook,
and drop the URI entirely for these cases.
David Reid [Fri, 31 Aug 2001 09:47:53 +0000 (09:47 +0000)]
With my normal sense of missing the boat :)
This gets the build working on BeOS again :) Apologies for the delay :(
Jeff changed the order of apr-util and apr to solve a "cleaning" issue but
that makes me uncomfortable as apr-util is dependant on apr, so if we clean
apr-util we shouldn't be altering anything in apr. If I decide to rebuild
apr-util then apr should still be buildable. Sorry Jeff but I think we need
a different solution :(