Greg Stein [Wed, 7 Feb 2001 12:33:17 +0000 (12:33 +0000)]
Revamp the CHECKOUT method handling and various support functions for it.
Basically, the original CHECKOUT was based on a really old draft of the
DeltaV specification. This brings it up to date.
*) get_resource hook now takes an optional label name and/or a flag on
whether to use the DAV:checked-in property; if either one is provided,
then a version resource is looked up and returned.
WARNING: the parameter types are now the same, but have very different
semantics. this means you won't get a compile error to figure
out that something needs to be changed here.
*) mod_dav.c::dav_get_resource no longer cahces the fetched resource in the
request userdata. Some requests will call this function multiple times,
for different resources -- we don't want to keep returning the same
resource (no idea how this ended up working).
*) dav_get_resource()'s parameters have been updated. target_allowed is old
terminology; it is now label_allowed. The target paramter is obsoleted by
the simple use_checked_in flag.
*) dav_get_target_selector() is obsolete. XML element processing is done
within the CHECKOUT method (i.e. only where it occurs). The other half of
the old function was to simply fetch the Label: header.
*) DAV_TARGET_SELECTOR_HDR is now DAV_LABEL_HDR
*) dav_method_checkout() now processes all the various options for a
CHECKOUT method and either modifies the initial resource lookup, or
passes the data to the checkout hook function.
*) the checkout hook grew a bunch of new parameters
*) new utility function: dav_xml_get_cdata() to gather up all the CDATA from
an XML element. this is used to extract DAV:href values.
(probably move to util_xml.c at some point)
Brian Havard [Tue, 6 Feb 2001 23:33:31 +0000 (23:33 +0000)]
Don't include mpm.h from scoreboard.h as scoreboard.h is included from mpm.h.
Instead, make the MPM type defined before including scoreboard.h.
PR:
Obtained from:
Submitted by:
Reviewed by:
Ryan Bloom [Tue, 6 Feb 2001 22:49:46 +0000 (22:49 +0000)]
We have a poor abstraction in the protocol. This is a temporary
hack to fix the bug, but it will need to be fixed for real. If
we find an error while sending out a custom error response, we back
up to the first non-OK request and send the data. Then, when we send
the EOS from finalize_request_protocol, we go to the last request,
to ensure that we aren't sending an EOS to a request that has already
received one. Because the data is sent on a different request than
the EOS, the error text never gets sent down the filter stack. This
fixes the problem by finding the last request, and sending the data
with that request.
PR: 7165
Jeff Trawick [Tue, 6 Feb 2001 22:34:56 +0000 (22:34 +0000)]
get perchild just a little closer to building; maybe somebody
with a soft spot in their heart for perchild can spend the
remaining ten minutes to fix it;
Martin Kraemer [Tue, 6 Feb 2001 21:47:50 +0000 (21:47 +0000)]
Jean Frederic says (and I verified his claim):
After fighting with shlibtool I discovered that the problem was that
libtool was called instead shlibtools.
Of course it is easy to fix and it fixes mod_dav and mod_dav_fs [...]
Ryan Bloom [Tue, 6 Feb 2001 20:41:07 +0000 (20:41 +0000)]
Setup the server start time correctly. This also gets the server uptime
to be reported correctly. I have also moved this code into a common
location, so that individual MPMs do not need to worry about setting up
the start time.
Chris Pepper [Tue, 6 Feb 2001 16:31:17 +0000 (16:31 +0000)]
Added note about later sections overriding earlier.
Removed note about order reversal in 1.2-1.3a versions.
Fixed a couple typos.
Matched up <p> & </p>.
Ryan Bloom [Tue, 6 Feb 2001 16:21:14 +0000 (16:21 +0000)]
Make sure that mod_include's post_config hook always runs before
mod_cgi(d)'s post_config hook. Mod_include creates a hash table in the
post_config stage that mod_cgi(d) uses during it's post_config stage, so
it must be done in this order.
Submitted by: Brian Havard <brianh@kheldar.apana.org.au>
Bill Stoddard [Mon, 5 Feb 2001 18:28:47 +0000 (18:28 +0000)]
Tweak the AP_MIN_SENDFILE_BYTES. Not using sendfile on Windows
in the general (non byterange) case is a HUGE performance hit (> 50% in many cases).
I also suspect most byterange requests will be for substantially more bytes (a pageful
out of a larger document for example). In the uncommon (I believe) cases where
fewer bytes are requested, 250 bytes per packet is not too abusive of the network.
Jeff Trawick [Mon, 5 Feb 2001 15:04:32 +0000 (15:04 +0000)]
ap_new_connection() returns NULL if an error occurred (prefork MPM
and ap_new_connection() were changed last week)
I have skipped putting the change into WinNT MPM and mod_proxy. I
left a note in the mod_proxy code; for the NT MPM I think I can talk
somebody into doing the right thing for me.
Greg Stein [Mon, 5 Feb 2001 12:34:39 +0000 (12:34 +0000)]
*) add activity handling: OPTIONS and MKACTIVITY
*) fix HTTP status code in MKWORKSPACE handling
*) add can_be_activity and make_activity hooks to dav_hooks_vsn
Ryan Bloom [Mon, 5 Feb 2001 03:15:20 +0000 (03:15 +0000)]
Move release.h to ap_release.h. This was done to namespace protect the
release header file. While doing this, I also made sure that the file
was only included once.
Submitted by: Greg Stein
Ryan Bloom [Mon, 5 Feb 2001 01:08:27 +0000 (01:08 +0000)]
Remove the Announcement file from the build tree. It has been moved to
the Apache web site, in preparation for the first tag using the new tag
and release strategy.
Bill Stoddard [Fri, 2 Feb 2001 21:32:34 +0000 (21:32 +0000)]
Begin restructuring scoreboard code to enable adding back in
the ability to use IPC other than shared memory.
Get mod_status working on Windows again.
Still to do:
Rename some of the function APIs. Replace all calls to reinit_scoreboard with
ap_create_scoreboard. Add back in support for scoreboard files.
Bill Stoddard [Fri, 2 Feb 2001 19:28:06 +0000 (19:28 +0000)]
Should consider APRizing the entire module. For now, use HAVE_TIMES
to indicate if we have the necessary structures. This is part of getting
mod_status working on Windows
Ryan Bloom [Thu, 1 Feb 2001 21:55:16 +0000 (21:55 +0000)]
Bring mod_status for 2.0 back in line with mod_status for 1.3. This is
basically a straight port of the 1.3 module to 2.0. The MPMs need to be
modified a bit to work with mod_status, but prefork, mpmt_pthread, and
dexter have already been changed. I will fix perchild tonight. There
is a lot of common code that can be abstracted, and there seems to be a
small bug with regard to what mpmt_pthread and dexter report as current
connections. ExtendedStatus does work again, although until the bug
mentioned above is fixed, it isn't as useful on mpmt_pthread and dexter.
Next week, I will look at allowing other modules to add data to the
STATUS page and possibly to the scoreboard itself.
This file will go away. For this moment, the s/FindFirstFile/apr_stat/
fixes parsing of utf-8 resources against the NTFS filesystem. The only
remaining utf-8 change is to the config parser [which is simple - any
unicode config file (FFFE/FEFF lead word) will be utf-8 encrypted].
Tony Finch [Thu, 1 Feb 2001 09:59:25 +0000 (09:59 +0000)]
Get the correct IP address if ServerName isn't set and we can't
find a fully-qualified domain name at startup.
PR: 7170
Submitted by: Danek Duvall <dduvall@eng.sun.com>
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.
Bill Stoddard [Wed, 31 Jan 2001 20:01:16 +0000 (20:01 +0000)]
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)
Greg Ames [Mon, 29 Jan 2001 22:19:17 +0000 (22:19 +0000)]
back out recent breakage. If the lstat isn't executed, finfo isn't
initialized, and the code was looking at random garbage.
This gets the server a little closer to starting on apache.org. There's still
an issue with mod_include not resolving apr_get_username when it's dynamically
loaded.
Ryan Bloom [Mon, 29 Jan 2001 05:41:04 +0000 (05:41 +0000)]
Make mod_cgid work with SuExec. This has been tested and works reliably
on my machine, but since this is security related, this should be tested
and scrutinized by as many people as possible.
*) Adopt apr user/group name features for mod_rewrite. Eliminates some
'extra' stat's for user/group since they should never occur, and now
resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS
volumes.
No-one commented on loosing the 'stat' calls, can anyone invent a scenario
where they could be required? Also, I don't like the casts either, so if
you have a better solution, don't whine, just fix it :)
*) Adopt apr features to simplify mod_includes. This changes the
behavior of the USER_NAME variable, unknown uid's are now reported
as USER_NAME="<unknown>" rather than the old user#000 result.
WinNT now resolves USER_NAME on NTFS volumes. [William Rowe]
** Also fixes yet another stat result, allowing APR_INCOMPLETE
Moved several CHANGES back to APR where they belonged in the first place,
Adopt apr features for simplifing mod_userdir, and accept the new
Win32/OS2 exceptions without hiccuping
Also note a potentially serious flaw - others please review.
Moving a small OS2'ism into APR, it's pw_dir excludes the username.
Return the expected result. Also noted the headers/os2errno changes
from early this morning.
Roy T. Fielding [Sun, 28 Jan 2001 07:41:15 +0000 (07:41 +0000)]
Replace configure --with-optim option by using and saving the
environment variable OPTIM instead. This is needed because configure
options do not support multiple flags separated by spaces.
Roy T. Fielding [Sun, 28 Jan 2001 06:46:23 +0000 (06:46 +0000)]
Force --with-optim and --with-port to have argument values, since
they result in later compile errors otherwise.
I would have removed --with-optim in favor of just setting it with
an environment variable, but then it wouldn't be saved in config.nice.
A better solution is needed because these arguments can only accept
a single value (quotes and spaces are stripped). Perhaps setting
OPTIM within config.nice? First things first.
Ryan Bloom [Sun, 28 Jan 2001 04:07:03 +0000 (04:07 +0000)]
Fix some byterange handling. If we get a byte range that looks like
"-999999" where that is past the end of the file, we should return
a PARTIAL CONTENT status code, and return the whole file as one big
byterange. This matches the 1.3 handling now. [Ryan Bloom]
Ryan Bloom [Sun, 28 Jan 2001 03:36:02 +0000 (03:36 +0000)]
Make the error bucket a real meta-data bucket. This means that the
bucket length is 0, and a read returns NULL data. If one of these
buckets is passed down after the headers are sent, this data will
just be ignored.
Submitted by: Greg Stein
Ryan Bloom [Sun, 28 Jan 2001 03:00:03 +0000 (03:00 +0000)]
The prefork MPM wasn't killing child processes correctly if a restart
signal was received while the process was serving a request. The child
process would become the equivalent of a second parent process. If
we break out of the accept loop, then we need to do die after cleaning
up after ourselves.
Joshua Slive [Sat, 27 Jan 2001 23:32:36 +0000 (23:32 +0000)]
- Remove documentation on command line options from invoking.html
since the man pages are now in the html docs.
- Move information on "starting the server" from install.html to
a more proper location "invoking.html"
- Add a few more details here and there.