Ryan Bloom [Thu, 9 Aug 2001 04:56:23 +0000 (04:56 +0000)]
If we are going to get the length of a brigade, it helps if that
brigade has data. To that end, if we have just expanded ctx->b, we need
to concat ctx->b to the end of b, so that b has something to pass
back to the previous filter.
This fixes the problem with the proxy not proxying non-keepalive
connections.
Ryan Bloom [Thu, 9 Aug 2001 04:21:26 +0000 (04:21 +0000)]
Handle the -1 case in ap_http_filter. -1 means that we have to read
all data from the socket until the socket is closed. This has been
used to proxy www.google.com successfully, but it doesn't return anything
when used with www.yahoo.com. Still debugging that problem.
Ryan Bloom [Wed, 8 Aug 2001 15:42:08 +0000 (15:42 +0000)]
Re-apply the patch from yesterday that makes ap_http_filter use
apr_brigade_partition. In order to do this cleanly, I had to make
some changes to the apr_brigade_partition API, so this also adds fixes
all of the calls to that function throughout the server.
Roy T. Fielding [Wed, 8 Aug 2001 02:26:05 +0000 (02:26 +0000)]
Apache Monitor's tray code does not notify Windows to remove it from the
tray when the process is destroyed. Just needed to add a call to remove
the tray icon before PostQuitMessage(0).
Also show "MS Windows XP" instead of "Whistler".
Submitted by: Jerry Baker <jerrybaker@weirdness.com>
Greg Ames [Tue, 7 Aug 2001 22:28:51 +0000 (22:28 +0000)]
clean up the scoreboard properly after threaded processes die gracefully.
find_child_by_pid() failed to do its job, because ap_max_daemons_used was
too low. There was some recent breakage in threaded that contributes to
the problem.
However, find_child_by_pid() should not be using the current number of
daemons. It could have been recently reduced, which makes it fail to
find the exiting process.
Ian Holsman [Tue, 7 Aug 2001 21:46:47 +0000 (21:46 +0000)]
change readbytes from a apr_size_t to a apr_off_t to match the parameter
required in ap_get_brigade
Submitted by: barbee@veribox.net
Reviewed by: ianh@apache.org
Ian Holsman [Tue, 7 Aug 2001 21:18:03 +0000 (21:18 +0000)]
change the parameter to ap_get_brigade from apr_site_t to apr_off_t, due to
a parameter change in the original filter.
PR:
Submitted by: barbee@veribox.net
Reviewed by: ianh@apache.org
Ryan Bloom [Tue, 7 Aug 2001 17:57:44 +0000 (17:57 +0000)]
Greatly simplify the ap_http_filter logic, by using the
apr_brigade_partition function. This should also remove a warning from
the Windows build, because apr_off_t and apr_size_t aren't the same
size.
Ryan Bloom [Tue, 7 Aug 2001 16:56:32 +0000 (16:56 +0000)]
Update the README so that it reflects just what Apache is today, and so
that it is correct about where things reside.
Submitted by: Joshua Slive <joshua@slive.ca>
All mod_autoindex query parsing is now quietly quashed with the
IndexOption IgnoreClient. The IndexOption SuppressColumnSorting
still drops the column sort <a href>'s for the column headers, but
IgnoreClient is required to ignore these Query options entirely.
Introduced new mod_autoindex query argument parsing for F=[0|1|2]
to allow the client to select plain, FancyIndexing or HTMLTable
formatting, V=[0|1] to inhibit or enable version sorting, and
P=pattern to return only specific files. The old Query Arguments
were reorganized as C=f for sorting column 'f' (same N, D, S, or M
as before), and O=A|D for ordering ascending or descending.
Docs and an Example are provided in mod_autoindex.html
Cliff Woolley [Tue, 7 Aug 2001 08:02:42 +0000 (08:02 +0000)]
Fixed an error in ap_ssi_get_tag_and_value(). It was not placing the
null terminator in the right spot for the tag_val if the value contained
backslashes. This caused #if, #elif, and #else expressions with backslashes
to be incorrectly evaluated.
Introduced new mod_autoindex IndexOptions flags; SuppressIcon to
drop the icon column and SuppressRules to drop the <hr> elements.
These are necessary for HTML 3.2 final formatting rules.
Introduced HTMLTable to create rudimentary HTML table listings
(implies FancyIndexing). Necessary for alternate charsets, since
the columns are borked by multibyte characters.
Re-Introduced the mod_autoindex IndexOptions flag TrackModified
from Apache 1.3.15. This is needed for two reasons, first, given
multiple machines within a server farm, ETags and Last-Modified
stamps won't correspond from machine to machine, and second, many
Unixes don't capture changes to the date or time stamp of existing
files, since these don't modify the dirent itself.
[Originally for 1.3 by me]
Re-Introduced the mod_autoindex InextOptions flag FoldersFirst
and DirectoryWidth options from Apache 1.3.10.
[Originally for 1.3 by Ken Coar]
A debatable change, to return (an absolute) 404 if some of the extentions
of every matching file isn't decodable by mod_mime, instead of 500.
Adopted 404 as the result, per Roy Fielding.
Thanks goes to Manoj, while commenting on another issue, for triggering
this idea. If we find files matching (e.g. index.html.bak matches
index.html) but they are rejected because we don't understand them
(e.g. they are a directory, or .bak isn't a mod_mime recognized extension)
then Error 500 out of here, with a note for the system administrator
explaining that index.html matches some files, but their extensions
cannot be grokked. No more (unintentional, or situational) autoindex :)
The real slim shady finally stood up. This patch segregates the fast
internal redirect logic back into http_request, the next patch will
actually fix it.
This was entirely broken. We cannot skip the location walk just because
we are in a file subrequest (think of a file server-status sitting in
the document root, this shouldn't be blindly served as a 'file'.)
Greg Ames [Sun, 5 Aug 2001 18:08:49 +0000 (18:08 +0000)]
Speed up the server's response to a spike in incoming workload
or restarts.
New processes aren't able to start all their threads right away
if other dying processes share the same scoreboard real estate.
So give empty process slots in the scoreboard top priority.
Jeff Trawick [Sat, 4 Aug 2001 11:40:16 +0000 (11:40 +0000)]
cosmetic changes only for a clean build; no serialization problems
addressed; I presume those are waiting for an APR-ization of the
queue/condition mechanism
Subtle variation for security. If the mod_mime file has nothing specific
to say about a given set of file extentions (and has only based the
resolved fields on the default language, encoding and content type)
then tell us we can ignore the result by leaving the exception list
entirely undefined. If mod_mime adds anything (a language, charset, or
whatnot) then proceed to use the file in the Multiviews evaluation,
otherwise mod_negotation will ignore the file found.
This points out a need for a slightly twisted DefaultClientLanguage,
as opposed to creating foo.html.html files. Either that, or introduce
a 'neutral' entity that the user can list (say, .default) for mod_mime
to declare it as a fallback language/encoding/content-type/handler.
Solve the major underlying problem of content negotation by passing
mod_negotiation the 'unresolved' parts of the path in a ->notes
array ap-mime-exceptions-list.
If mod_mime is given index.html.bad.en it will add index and bad
to the list (presuming html and en are both defined.)
mod_negotiation will decide if index and bad are it's fault (the
user requested index.html.bad[.*]) or if it's a messed up file
(say .old, .junk, or .bak).
The next patch to allow any-order negotiation should check each
of these list elements, so that asking for index.bad in the prior
example would succeed. Right now that request would fail because
.html was recognized, so it's not in the exceptions list. This
patch uses a simple strcmp to the given name.
Also, this patch allows any mod_mime processed file to be served,
even if the content type cannot be determined (think README.en).
This is crippled by the client expect headers and omitting the
default content type.
Save hundreds of cycles on every autoindex request by _not_ attempting
to to test the parent (..) sub request! This patch also allows the user
to see things that will redirect them. That way, the lnk or dir within
the directory is displayed correctly.
Also allows an ALT text entry other than DIR by providing AddAlt
^^DIRECTORY^^, as the user (might) expect to be allowed to do.
Add a timeout when making connections from within the proxy.
Now, if someone wants to add a special scoreboard state for proxy
attempting to make connection, be my guest.
Both the ftp and http proxies were erroneously sending a flush bucket after
an eos bucket. This had been put in place to repair a bug, but was covering
the symptoms, rather than providing the cure. Bug repaired, and kludge
removed.
That's enough for tonight ... gheesh. Allow 2xx + OK (0) results from
the subrequest to go out to the client. This doesn't address (..)
anomilies, which I will address in the a.m.
Fix some major brokenness. We were not validating that the autoindex
subrequest'ed file was valid, and did not check a subrequest at all if
the user didn't use FancyIndexing.
If it won't let us run in APR_POOLS_DEBUG mode, it's broken.
We should be implementing this all in terms of apr_threads, and fix
the apr_pools code to allow 'trusted subpools' with their own root
allocations that bypass the mutexes. Unrooting a pool just glosses
over the real problems.
Make this legible. Points out a huge headache in the new conftree pools
mechanism, that we aren't joined properly, so we hit the 'not ancestor'
abend here.
Ryan Bloom [Thu, 2 Aug 2001 05:27:06 +0000 (05:27 +0000)]
Add a handler to mod_includes.c. This handler is designed to
implement the XbitHack directive. This can't be done with a
fixup, because we need to check the content-type, which is
only available in the handler phase.
PR: 7751