Ryan Bloom [Fri, 30 Jun 2000 21:18:26 +0000 (21:18 +0000)]
Remove ap_get_server_conf() from the MPM's that implement. The only place
this function was ever called was inside the MPM's, and not all of the
MPM's actually had the function. This is part of another round of common
code clean-up.
Ryan Bloom [Fri, 30 Jun 2000 19:57:49 +0000 (19:57 +0000)]
Fix the problem with ./buildconf not working right out of CVS. The
general problem, is that we were using AC_CONFIG_AUX_DIR_DEFAULT, which
the autoconf source says shouldn't be called directly. It should be
called using AC_REQUIRE, but I couldn't make that work. So, since we know
exactly where the files that we are looking for are located, we'll just
point autoconf directly to them, and ignore all of the hoops. :-)
I am not convinced the AC_CONFIG_AUX_DIR(.) call that I am using is
strictly necessary, but it doesn't cause any problems and it logically
makes sense.
Ryan Bloom [Fri, 30 Jun 2000 18:08:13 +0000 (18:08 +0000)]
Combine some common code. Before this, all platforms implemented their
own iol_sockets using APR. This just combines all of that code to a
common file and moves that file to main. I have tested this with all of
the Unix MPM's, but I am willing to bet I missed something (Makefiles) for
Windows, and possibly moving some code for OS/2 and BeOS.
Ryan Bloom [Fri, 30 Jun 2000 14:45:15 +0000 (14:45 +0000)]
I am removing my veto and stepping away from this discussion for at least
two days. This does NOT mean I like the patch at all, it just means I have
no desire to continue with this discussion right now. Because I have no
plans to respond to any more e-mail on the topic currently, I have no right
to veto a patch.
Ryan Bloom [Wed, 28 Jun 2000 16:55:45 +0000 (16:55 +0000)]
Remove the config stuff from the STATUS file. I believe the configuration
in 2.0 is as clean as it's going to get now. Most of the cruft has been
removed. Any more changes that are needed to make the configure system
work can easily be added within the current configuration framework.
Also, update CHANGES to reflect the recent changes to the config system.
Ryan Bloom [Wed, 28 Jun 2000 16:31:02 +0000 (16:31 +0000)]
Finish the Configuration cleanup. This basically merges all of the
autoconf scripts that APR provides for other programs into apr_common.m4.
Other programs can then just include that file to get the APR checks that
are required.
Submitted by: Sascha Schumann <sascha@schumann.cx>
Greg Stein [Wed, 28 Jun 2000 08:55:58 +0000 (08:55 +0000)]
initial checkin of the new Apache DAV code. this is a pristine copy of
mod_dav 1.0.1 (tag "V1_0_1" in the mod_dav CVS repository).
For historical information about these files, see the (old) mod_dav web
site at http://www.webdav.org/mod_dav/. CVS repository information can
be located from those pages.
Hook functions aren't translated (and when they are, they are _NONSTD)...
but you don't need to export a function you will pass by ref to a
register hook function.
Ryan Bloom [Tue, 27 Jun 2000 23:12:23 +0000 (23:12 +0000)]
Fix the configure process. This does a couple of things to allow APR and
Apache to share information.
1) Move the calling of APR after Apache decides which MPM is run, but
before Apache generates the Makefiles and related files. This allows
Apache to setup the threading cache values, while still allowing APR
to generate APRVARS in time for Apache to use it.
2) Setup the cache files correctly for RUN_NOW configured subdirectories.
Bill Stoddard [Tue, 27 Jun 2000 22:39:13 +0000 (22:39 +0000)]
Fix another compiler warning. Forgot to commit this one along with the
earlier patch. Sorry...
Submitted by: Victor Orlikowski
Reviewed by: Bill Stoddard
Ryan Bloom [Tue, 27 Jun 2000 22:35:53 +0000 (22:35 +0000)]
Pass the configure args to sub_configure scripts with the RUN_NOW macro.
This allows people to specify --disable-threads on Apache's configure
command line, and APR respects it. This is the first step to fixing a
problem introduced by making Apache call APR's configure script before
making any config decisions.
Ryan Bloom [Tue, 27 Jun 2000 22:25:12 +0000 (22:25 +0000)]
Use libtool to compile instead of cc. If we are going to use libtool,
we may as well go all the way.
Submitted by: Hubert Feyrer <feyrer@rfhs8012.fh-regensburg.de>
Reviewed by: Ryan Bloom
Jim Jagielski [Tue, 27 Jun 2000 21:28:31 +0000 (21:28 +0000)]
One bug and one fluff: need to use the '.' shell ``command'' to
source the file; and remove error message first time APR's
configure is run, and APRVAR doesn't exist.
PR:
Obtained from:
Submitted by:
Reviewed by:
Jim Jagielski [Tue, 27 Jun 2000 21:16:52 +0000 (21:16 +0000)]
Make sure to get the required vars for the config.guess/et.al. family
first. Right now, this is semi-duplicated, since APR does the same.
PR:
Obtained from:
Submitted by:
Reviewed by:
Ryan Bloom [Tue, 27 Jun 2000 20:25:46 +0000 (20:25 +0000)]
Fix the configure script. If a either the mpmt_pthread or dexter MPM's
are chosen, the default CGI module is mod_cgid. If any other MPM is
chosen, mod_cgi is the default. I would rather have the maintainers for
other platforms change their own defaults, than make mod_cgid the default
on all threaded MPM's.
Ryan Bloom [Tue, 27 Jun 2000 20:06:21 +0000 (20:06 +0000)]
Detect libraries based on which platform configure is being run on.
Basically, Apache now runs APR's configure script first. APR's configure
script has been setup to create a new file, APRVARS. APRVARS is basically
all of the environment variables that APR wants to export to the program
that is using it. This allows the calling program to "source" APRVARS
and get those environment variables.
Jeff Trawick [Mon, 26 Jun 2000 20:37:49 +0000 (20:37 +0000)]
Remove const from ap_socket_t parameters on APR functions so that
APR can modify the ap_socket_t as it sees fit. It may choose to
modify the ap_socket_t on functions which only read from the ap_socket_t
conceptually.
Note: http_connection::ap_new_apr_connection() passes its ap_socket_t
arg to one of the changed functions, so const was removed there also.
David Reid [Mon, 26 Jun 2000 13:26:22 +0000 (13:26 +0000)]
Large tidy up of the beos mpm. this brings in a lot of the changes that
have been made to dexter and mpmt_pthread and adds more support for graceful
restarts.
Ryan Bloom [Sat, 24 Jun 2000 19:31:42 +0000 (19:31 +0000)]
Fix a couple of const warnings on Linux. This basically just defines
ap_strstr and ap_strstr_c, which make sure that things are const when
they need to be.
Greg Stein [Sat, 24 Jun 2000 16:27:47 +0000 (16:27 +0000)]
http_request.[ch]:
*) add the "install_filter" hook as a hook/control point for modules to
install their filters. [Ryan Bloom]
http_protocol.c:
*) move check_first_conn_error() up in the file; no actual changes
*) add checked_bputstrs(), checked_bflush(), and checked_bputs(). These are
copies of ap_rvputs(), ap_rflush(), and ap_rputs() respectively. The
users of the checked_* functions will be independent of filtering changes
to the ap_r* functions.
*) add flush_filters() place holder
Jeff Trawick [Sat, 24 Jun 2000 16:14:11 +0000 (16:14 +0000)]
Bug fix:
. check proper error variable when handling errors from ap_write(pipe_of_death)
. log proper error variable after ap_poll() failure
. ditto for ap_create_pipe() failures
. ditto for ap_set_pipe_timeout() failures
Stylistic change:
. pass 0 instead of errno to ap_log_error when APLOG_NOERRNO is specified
Ryan Bloom [Fri, 23 Jun 2000 18:12:44 +0000 (18:12 +0000)]
Fix the mpmt_pthread MPM to use an APR pipe for the pipe of death. This
allows us to use APR_SOCKETS_AS_FILES to poll on an APR socket. Finally,
this makes the MPM more portable, because it is now always possible to set
the pipe to be non-blocking.
Ryan Bloom [Fri, 23 Jun 2000 00:14:14 +0000 (00:14 +0000)]
Modify the dexter MPM to use an APR pipe for the pipe of death. This fixes
a bug I introduced earlier today, because it uses the APR_FILES_AS_SOCKETS
to let us use the pipe of death in a poll call. With this change, dexter
becomes much more portable. Dexter used to try to set the pipe
non-blocking on it's own, but it only tried one argument to fcntl. There
are at least four different arguments to fcntl based on what platform you
are on. APR gets rid of that ugliness for us.
Ryan Bloom [Thu, 22 Jun 2000 22:49:50 +0000 (22:49 +0000)]
Remove select checks from Apache config. These checks were used to define
ap_select in ap_config.h. The only file that used ap_select() was
prefork.c. I have modified prefork.c to use select instead of ap_select.
In the future, this should be modified to use ap_poll like the rest of the
Unix MPMs. There are other MPMs that are continuing to use select, but this
too should change in time.
Ryan Bloom [Thu, 22 Jun 2000 19:46:23 +0000 (19:46 +0000)]
Commit a few changes to the mpmt_pthread and dexter MPMs. These basically
fix the error checking for one return from ap_poll, and use ap_pcalloc to
allocate the listenfds array. By using listenfds, we can avoid making
an unnecessary call to ap_create_tcp_socket.
Submitted by: Jeff Trawick
Reviewed by: Ryan Bloom
Ryan Bloom [Thu, 22 Jun 2000 16:55:01 +0000 (16:55 +0000)]
Remove a few unnecessary calls to select. These calls used to be made so
that we would sleep for a specified number of microseconds. APR provides
a function ap_sleep that does this for us.
David Reid [Thu, 22 Jun 2000 01:36:33 +0000 (01:36 +0000)]
Cut free mpm_common.c from ap_max_daemons_limit as a variable. Now we
get the value from the MPM and thus free the MPM to use any variable
name they like.
David Reid [Thu, 22 Jun 2000 00:28:33 +0000 (00:28 +0000)]
Add the ap_get_max_daemons to dexter, prefork and spmt_os2 MPM's. The only
one now lacking it is winnt, but that'll need someone form the winnt camp
to sort out.
Jeff Trawick [Tue, 20 Jun 2000 19:36:50 +0000 (19:36 +0000)]
ap_create_pipe was changed to return a pipe with both handles
blocking (previously, both handles were non-blocking).
ap_set_pipe_timeout() is now the only way to manipulate the
blocking state of the pipe. Pass -1 for timeout to make it
blocking; pass 0 for timeout to make it non-blocking.
ap_block_pipe() is gone.
A few minor bugs were fixed along the way.
OS-specific notes:
non-Unix in general:
Only Unix/BeOS currently has the optimization to keep track of the blocking
state. This is used to avoid syscalls as well as to handle ap_put_os_file(),
which is a case where we don't know the blocking state of the handle we are
given.
OS/2:
ap_set_pipe_timeout() with timeout value > 0: The code didn't play with
the blocking state before and it doesn't still. I did add logic for special
timeout values 0 and -1 to play with the blocking state.
ap_create_pipe(): old logic didn't do anything with the blocking state
of the second handle; it still doesn't; hopefully it is blocking
pre-BONE BEOS:
old code to make a pipe non-blocking was a no-op; now it returns
APR_ENOTIMPL
BONE: old code to make a pipe non-blocking; it passed &zero as the
parm to FIONBIO instead of &one; this bug was fixed
Win32:
The pipe was always created blocking before; no change
previously, ap_setprocattr_io() ignored the blocking flag; now it
respects it like other platforms and calls ap_set_pipe_timeout(p,0)
on appropriate pipe handles (Bill Stoddard was just working in
ap_set_pipe_timeout(), so I presume this is golden)
Correct the problem where the only local host name that the IP stack
can discover are 'undotted' private names. If no fully qualified
domain name can be identified, the default ServerName will be set to
the machine's IP address string.
Ryan Bloom [Tue, 20 Jun 2000 19:16:18 +0000 (19:16 +0000)]
Remove unixd_detach function, because it is provided by APR as ap_detach.
This also modifies the ap_detach function to look like unixd_detach.
Finally all calls to unixd_detach are changed to ap_detach.
Jeff Trawick [Tue, 20 Jun 2000 11:31:54 +0000 (11:31 +0000)]
Use the new command-handler initializer macros in some more modules.
Unfortunately, the resulting warnings are *not* all cleaned up. Ten or
so warnings spill over to non-AP_DEBUG builds (but that just means that
there is a bigger pool of folks to resolve them, right?).
This Win32 patch adds the key HKCR/filetype/shell/execcgi/command as the
preference over the HKCR/filetype/shell/open/command for registry-based
script execution, allowing two behaviors to coexist peacefully (the pipe
based console behavior and the Win32 shell behavior.)
The new ScriptInterpreterSource registry-strict directive dismisses bth
the HKCR/filetype/shell/open/command and the shebang processing for
administrators who are interested in explicit authorization of file type
execution allowed in the context of subscriber-created scripts. The net
result: only HKCR/filetype/shell/execcgi/command processing is permitted.
1.3.x truncated any open/command arguments following the %1 arg.
so this patch adds the char** arguments to several functions
1.3.x did not expand environment strings (%userprofile% etc.)
*) This patch may still not do so, if we are running with a
subset of the 'normal' environment for security reasons.
1.3.x did not parse the extension itself (eg. the .pl key itself)
for the command, failing the 'named' type (eg. perlscript),
so this patch first tests the 'named' key, then the .ext key
Jeff Trawick [Mon, 19 Jun 2000 02:22:30 +0000 (02:22 +0000)]
Use the new command-handler initializer macros in dexter;
clean up the resulting warnings.
Fix minor glitch in previous changes to mpmt_pthread: the const-ness
of ap_scoreboard_fname wasn't consistent between mpmt_pthread.c and
scoreboard.c (of course, putting the decl in a header file would have
helped root this out earlier).