Ryan Bloom [Sat, 12 Aug 2000 18:45:35 +0000 (18:45 +0000)]
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
Ken Coar [Sat, 12 Aug 2000 00:00:08 +0000 (00:00 +0000)]
Allow <Limit*> to accept arbitrary extension method named instead
of varfing. Nothing takes advantage of this yet; that's coming
next. Also replace the shorthand Allow setup to use the new
API (this is possibly a problematical change for the core default
handler; no problem to back that out).
Ken Coar [Fri, 11 Aug 2000 23:50:15 +0000 (23:50 +0000)]
Note the connexion between the method number list and the
ap_method_name_of() routine. (This should have been included
as part of that commit but wasn't, alas.)
Ken Coar [Fri, 11 Aug 2000 23:41:53 +0000 (23:41 +0000)]
Preset the cmd_parms->limited field to the magic 'no limit active'
value, and add some prototype API routines for expanding support
for arbitrary extension HTTP methods.
Jeff Trawick [Fri, 11 Aug 2000 16:31:40 +0000 (16:31 +0000)]
Get rid of an ancient comment (which was updated for the CHARSET_EBCDIC
->APACHE_XLATE change. Once I figured out what "32/9" meant (doh!)
it was pretty clear that the comment is no longer applicable.
Jeff Trawick [Thu, 10 Aug 2000 12:52:37 +0000 (12:52 +0000)]
Tweak apr_getopt() and its use in ab to avoid compiler warnings.
(Note: apr_initopt() and/or its callers still need tweaking.)
Submitted by: Bill Rowe
Reviewed by: Jeff Trawick
Ken Coar [Thu, 10 Aug 2000 11:22:57 +0000 (11:22 +0000)]
Add support for arbitrary extension methods for the Allow
response header field, and an API routine for modifying the
allowed list in a unified manner for both known and extension
methods.
Jeff Trawick [Wed, 9 Aug 2000 20:47:06 +0000 (20:47 +0000)]
mod_cern_meta: fix broken file reading loop in scan_meta_file().
We checked the retcode from apr_fgets() improperly.
Submitted by: Rob Simonson <simo@us.ibm.com>
Reviewed by: Jeff Trawick
Fix ApacheBench for the apr_initopt/apr_getopt change. This illustrates
abusing the apr_getopt_t for direct access at the working structure, just
as we did with the global vars. By my global search, there should be no
more apr_opt*** symbols out there.
Ryan Bloom [Tue, 8 Aug 2000 04:27:40 +0000 (04:27 +0000)]
Document os.h. I am only documenting the Unix copy, because every os.h
file has the same functions, and I don't want to duplicate docs. When we
generate docs, we'll just grab them from this directory.
Brian Havard [Sun, 6 Aug 2000 15:07:41 +0000 (15:07 +0000)]
Some enhancements for OS/2 ap_canonical_filename:
- Log proper error message instead of error code on failure
- In case of error caused by an invalid file name, don't return an empty
string as that tends to confuse things rather than make them better.
- Avoid using the very expensive ap_os_systemcase_canonical_filename()
unless it's truely necessary.
Remaining cleanup of ap_ -> apr_ and AP_ -> APR_ transformation...
see src/lib/apr/apr_compat.h for most details.
Also a few minor nits to get Win32 to build.
Jeff Trawick [Sat, 5 Aug 2000 12:28:42 +0000 (12:28 +0000)]
Finish (almost) Ryan's change of apr_filter_t back to ap_filter_t so
that apache builds again.
AFAICT, there is one last occurrence of apr_filter_t in ryan.patch.
After this config file is parsed, the only statement in the config
tree is the last statement in the IfModule container ("RewriteRule blah
blah").
The problem is that when ap_build_config_sub() handles this type of
construct, it moves *current to the end of the list before returning.
If this construct were the first thing in the file, the caller would
set conftree to *current, not realizing that there were list elements
before *current. The caller doesn't have addressability to those list
elements.
With this change, ap_build_config_sub() sets *conftree before
walking *current to the end of the list.
Ryan Bloom [Fri, 4 Aug 2000 07:07:33 +0000 (07:07 +0000)]
Fix the Perchild MPM. This does work now. This change has us using
socketpair instead of sockets created with AF_UNIX. There is very little
chance this will work anywhere other than Linux, but it is a start. I
have a machine with two virtual hosts, which are started as two different
users. When I make requests for each virtual host, they pass the request
to the correct child process. It is possible for a virtual host to have
multiple child processes all with the same user ID, and they all share
the responsability for answering requests.
There are a lot of bugs in this code, and it is not for the faint
hearted, but it works, and that's saying quite a bit in my mind.
Docs coming tomorrow. Right now, it's time to sleep.
Jeff Trawick [Fri, 4 Aug 2000 02:25:08 +0000 (02:25 +0000)]
Disable the dbm_ usage in mod_rewrite so that it links.
Still to do: decide at config time whether any modules need dbm, whether
to use the native one or sdbm, etc.
Ryan Bloom [Fri, 4 Aug 2000 00:21:07 +0000 (00:21 +0000)]
More progress with the perchild MPM. This is serving pages again, but
only when the request is accepted by the server that supposed to serve the
result. The biggest problem right now is descriptor passing. This isn't
likely to work anyplace other than Linux right now either.
Ryan Bloom [Wed, 2 Aug 2000 17:55:26 +0000 (17:55 +0000)]
Update the perchild MPM. This does not work, but that is because Linux
doesn't use any of the standard methods for passing around file
descriptors. I am setting this aside for a day or two, and then I will
come back and finish the implementation on a new OS. This is highlighting
the need for descriptor passing in APR.
Ryan Bloom [Tue, 1 Aug 2000 18:58:19 +0000 (18:58 +0000)]
Complete redesign of this MPM. This is almost working now.
HOW IT WORKS:
In the config file, the sysadmin specified:
ChildPerUserID uid gid num_processes
and in each virtual host:
AssignUserID uid gid
The MPM creates a unix domain socket for each uid/gid pair, and if any
child processes are left over, one for the default user and group
specified in the main config.
When a child process is started, it looks at what it's user id and group
id are supposed to be. It then inserts the correct socket into it's
listen array, and switches to the uid and gid specified.
When a request comes in, whichever child gets the request looks at which
child process it is actually for, and if it isn't for the current
process, the request gets forwarded through the unix domain socket to the
correct child process. From there, processing continues normally.
Currently, no requests are forwarded, but everything seems to be working.
Ryan Bloom [Tue, 1 Aug 2000 17:36:13 +0000 (17:36 +0000)]
Add a NO_DETACH environment variable to all MPMs that understand
ONE_PROCESS. This allows Apache to start up without detaching from
the controlling terminal, but also not going into single process mode.
The main purpose of this patch is to make it very easy to debug the
child process startup code.
PR: 2144
Ken Coar [Tue, 1 Aug 2000 17:06:20 +0000 (17:06 +0000)]
Put back PR#6347, but note that it's waiting for an external
entity. Add a 'Status:' line for each PR, but don't remove
any -- because if they're not in STATUS, they essentially
don't exist. If we're not serious about dealing with them,
let's just close them. If we *are* serious, they should be
in the work-to-do list.
Ken Coar [Tue, 1 Aug 2000 15:56:07 +0000 (15:56 +0000)]
We've been ignoring lots of PRs forever, marking them as
'suspended' with the supposed intention of either implementing
them someday or saying why not. Well, it's about time we did
something with them, so now they're listed in STATUS for people
to work on as they may.
Jeff Trawick [Mon, 31 Jul 2000 17:22:01 +0000 (17:22 +0000)]
Include <strings.h> if we have it to get protos for strcase* on AIX.
Submitted by: Victor J. Orlikowski <vjo@raleigh.ibm.com>
Reviewed by: Jeff Trawick
Jeff Trawick [Mon, 31 Jul 2000 15:39:19 +0000 (15:39 +0000)]
Fix some problems with which error code to use after a pthread_ failure.
Most of the changes added support for PTHREAD_SETS_ERRNO; a few of the
changes fixed bugs in existing code which always used errno (which
doesn't get the right error code on most platforms).
Jeff Trawick [Sun, 30 Jul 2000 23:06:57 +0000 (23:06 +0000)]
Get dsos working again by including $(LTFLAGS) on the command-line for
the --mode=link invocations of libtool/shlibtool. The lack of LTFLAGS
resulted in no -export-dynamic, and dsos couldn't resolve symbols in
httpd.
LTFLAGS was lost in the 1.23 revision of rules.mk.