Negotiation once allowed any file, of any filename extension, to be
served. The original patch to mod_negotation eliminated all extensions
that did not reflect filename extensions associated with negotiation
variables, unless the user expressly specified the file name with those
filename extensions.
This patch [attributed to me] was vetoed at its inception, it was provided
as an alternative for those who had to have the current behavior.
There is now another alternative patch that would introduce the
MultiviewsMatch directive to mod_mime, for consideration and discussion.
Short of removing the headers filter, this is the best asis can do.
Note that all body replies were entirely broken (thanks for helping
me notice this, Greg :)
Allow mod_so to be enabled by default even if no shared libraries from the
core are requested.
If you want to disable shared library support, pass --disable-so to
configure (as always). This will enforce that your httpd can NOT use
shared libraries - which may be a good thing for you to do.
Justin added the APR_HAS_DSO check per discussion on-list between Aaron,
Ryan, Greg, and the rest of the peanut gallery. This should allow us
to not build mod_so when it isn't supported. However, the rest of the
configure scripts need to know that shared objects aren't supported and
complain accordingly. (sharedobjs = yes, error out?)
Speed it up. While this optimization wasn't obvious for the two-pass
location_walk, it is significant for all subreq/redirects reusing the
cached walk values.
Greg Ames [Tue, 9 Oct 2001 01:33:48 +0000 (01:33 +0000)]
prevent near infinite subrequest recursion with mod_negotiation enabled.
This can happen if there is a partial match between a bad URI and a
file with a variant extention.
ap_sub_req_lookup_dirent has apparently been generating bogus subrequest
URIs for ages, but they used to be ignored. Once we started calling
ap_process_request_internal for all subrequests, they started causing
problems. Make it explicit that rnew->uri is to be ignored for this type
of subrequest.
Ryan Bloom [Mon, 8 Oct 2001 23:28:57 +0000 (23:28 +0000)]
Clean up the string passed to the error log hook. This removes the date,
time, error level, etc strings. The only information in the string is
the actual error.
Submitted by: Jon Travis <jtravis@covalent.net>
Greg Stein [Mon, 8 Oct 2001 23:10:37 +0000 (23:10 +0000)]
Don't set r->status_line. Apache uses that in preference to any other status
line, thinking we've set a custom status. Of course, it says "200 OK" no
matter what error we happen to return(!).
Ian Holsman [Mon, 8 Oct 2001 21:49:17 +0000 (21:49 +0000)]
dechunking filter removed.
add HTTP_IN filter after the headers have been parsed.
so that the HTTP_IN can check them ;-)
Still not 100% if this works properly, but I don't get
the chunking numbers displayed on my browser,
so it's better than what was there.
PR:
Obtained from:
Submitted by:
Reviewed by:
Greg Stein [Mon, 8 Oct 2001 20:12:50 +0000 (20:12 +0000)]
HTTP_IN was attempting to process the PEEK mode. This threw off
check_pipeline_flush(), making it think another request was available (when
it wasn't). Apache would avoid flushing the prior request and block on
reading the next request. (of course, the client wasn't sending the next
one, cuz it was still waiting for the results of the first one)
Ian Holsman [Mon, 8 Oct 2001 19:25:35 +0000 (19:25 +0000)]
initial port of new Request-mode HTTP_IN filter to proxy.
Status: It serves a reverse-proxy page.. but SLOWLY.
VERY SLOWLY.
still looking at why, but now it serves pages instead of dumping core.
PR:
Obtained from:
Submitted by:
Reviewed by:
Revamped ap_directory_walk logic, without a path_info helper is now
activated. It may be bumpy for a few days, and we have more optimizations
to put in place, but it's time to get this in the developer's test code.
A major overhaul to the -replacement- ap_directory_walk logic. This still
doesn't activate that code, I will do so probably by Monday, after more
thorough testing.
Introduces the ap_directory_walk::cache so we can stop wasting tons of
effort in mod_autoindex and other subreq/redirect requests.
This isn't thoroughly tested, I've only stepped through a half dozen
common cases. If you want to play, define REPLACE_PATH_INFO_METHOD.
Allow the core input filter to handle AP_NONBLOCK_READ request for a
finite number of bytes (i.e. *readbytes > 0).
ap_brigade_partition does a blocking read. So, what we should do is
apr_bucket_read on the socket for non-blocking. If we get less than
what they asked for, that's okay and we should just return that amount.
If they were non-blocking, we should always be non-blocking.
Ryan, Greg, and others can figure out if ap_brigade_partition should
be tweaked to handle AP_NONBLOCK_READ natively. I'm of a mixed mind,
but this addresses the short term need.
Make sure we run the new conf files through sed.
Now, the question is whether it might make more sense to have them
as ssl-std.conf, ldap-std.conf, and proxy-std.conf.
(I'm also not sure if this is even shell portable or not.)
I'll leave that up to OtherBill since he added these files.
Cleanup the config (somewhat) so that win32 -could- actually run from
the httpd-std.conf - but there are still some discrepancies to take
back to the conference committee :)
LDAP was voted some time ago into it's own httpd-ldap repository, and
never built on Win32; No ldap config directives are present, so I've
pulled it from both .conf files.
It would be really nice if the proxy team would come in and clean out
the deprecated/unsupported directives here.
Ryan Bloom [Thu, 4 Oct 2001 20:00:53 +0000 (20:00 +0000)]
Remove the Port directive. In it's place, the Listen directive
is now a required directive, which tells Apache what port to
listen on. The ServerName directive has also been extended
to accept an optional port. If the port is specified to the
ServerName, the server will report that port whenever it
reports the port that it is listening on. This change was
made to ease configuration errors that stem from having a Port
directive, and a Listen directive. In that situation, the server
would only listen to the port specified by the Listen command,
which caused a lot of confusion to users.
Ryan Bloom [Wed, 3 Oct 2001 17:47:51 +0000 (17:47 +0000)]
Fix --enable-mods-shared processing. If most is specified,
then all modules that can be compiled as shared modules are. This
was done by adding a module config specifier, static, which denotes
that a module can not be compiled as a DSO.
Ryan Bloom [Wed, 3 Oct 2001 17:44:34 +0000 (17:44 +0000)]
Add a Listen directive to the default config file. This allows us to
later add another listen directive, in the default SSL config file,
without stopping the server from listening on port 80. The next step
is to combine the Port and ServerName directives, so that Port can go
away finally.
Ryan Bloom [Wed, 3 Oct 2001 17:31:13 +0000 (17:31 +0000)]
Remove an old comment. This config.m4 is numbered 9, which is the
highest possible number, so it is garaunteed to be in the last batch. Any
module config.m4 should just use a number < 9 to ensure that this continues
to work.
One more note on the last commit - the 'cannot serve an absolute path'
bug was identified by, and debugged with hints and examples provided by
Ryan Morgan <rmorgan@covalent.net> --- his example module demonstrating
the problem was invaluable :)
Correct file lookups when we are given a file within the same directory
as the parent request. Also pulls a bunch of notes and code that was
set aside, we don't need this with the other optimizations introduced.
Fix a mismatching issue, where index.html.foo.en had recognized .html and
.en components, and exceptions index and foo. This patch will ignore the
'missing' exception html from the request, and go on to test the exception
foo in the list.
This does -not- imply that a request for index.foo will succeed, in the
example above. The pattern match tests index.foo[.*] so we wouldn't find
index.html.foo.anything. The pattern matching proposed at one time by
Francis Daly would allow index.foo to succeed as well [although many to
many matching is dangerous, see comments in this patch.]
Lars Eilebrecht [Tue, 2 Oct 2001 21:54:28 +0000 (21:54 +0000)]
Update mime.types file.
Map video/vnd.mpegurl to mxu according to
ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/video/vnd.mpegurl
and audio/x-mpegurl to m3u, because it is commonly used.
Submitted by: Heiko Recktenwald <uzs106@uni-bonn.de>
Reviewed by: Sander van Zoest, Lars Eilebrecht
Ian Holsman [Tue, 2 Oct 2001 04:09:53 +0000 (04:09 +0000)]
Added Doxygen Comments
With these 2 changes most of the Doxygen warnings go away.
(these patch just modifies comments/slight moves in typedefs, no other changes)
Ryan Bloom [Mon, 1 Oct 2001 19:37:20 +0000 (19:37 +0000)]
clean up the fdqueue a bit more, by implementing Greg's
suggestions to getting rid of redundant variables, as well as
converting the simple ap_queue_full/ap_queue_empty tests into macros.
This also reinstates the "not_full" condition, which turned out to
be useful afterall in cases where we wanted to prevent the listener
thread from accepting further connections until the worker queue has
room for more.
Cliff Woolley [Mon, 1 Oct 2001 19:19:45 +0000 (19:19 +0000)]
Switch from tmpnam() to apr_file_mktemp() so that gcc with a recent glibc
will shut the hell up about tmpnam() being unsafe. htpasswd.c needs a
similar treatment, but it won't be _quite_ as easy since htpasswd has not
been completely apr-ized yet.
- substr used in APACHE_MODULE for the help string did not parse correctly
with autoconf 2.50+ so we had to punt there anyway and use AC_HELP_STRING.
- Add APACHE_HELP_STRING define that will call AC_HELP_STRING on 2.50+
(actually not 2.13 - look at the regex call) or do our custom variation
of it. This function can't have any extra spaces or it will be returned
in the help string. So noted. If anyone can figure out how to insert
a line break like 2.50+ does when we go over the 26th column, I'd
appreciate it. I tried and I'm way too tired to figure it out now.
Adding this would greatly simplify two or three HELP_STRING uses.
- Switch all of those annoying WITH and ENABLE functions to use the
APACHE_HELP_STRING. This makes everything consistent now. I've always
had to go through and keep aligning everything every few months or so
because I'm the only one who cares. No more. I refuse to do it any more!
Use APACHE_HELP_STRING or be crucified.
Looks decent with autoconf-2.13 and autoconf-2.52.