Parent Directory
|
Revision Log
| Links to HEAD: | (view) (annotate) |
| Sticky Revision: |
Replace AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex, and WatchdogMutexPath with a single Mutex directive. Add APIs to simplify setup and user customization of APR proc and global mutexes. (See util_mutex.h.) Build-time setting DEFAULT_LOCKFILE is no longer respected; set DEFAULT_REL_RUNTIMEDIR instead. Some existing modules, such as mod_ldap and mod_auth_digest gain configurability for their mutexes.
Fix a lot of doxygen warnings. Thanks to Brad Hards for the patch. I added a few more fixes, and there are still more that might need a doxygen expert. PR: 48061 Submitted by: Brad Hards Reviewed by: poirier
Hmmm... forgot git commit/dcommit.
Oops. forgot the declaration
Enhance ap_hook_monitor to pass along a server_rec (in general the ap_server_conf) and tuck away some storage in there which may be useful as an opaque data pointer.
main() can use ap_run_mpm() directly, so axe the old ap_mpm_run() function change the mpm hooks to return OK/DONE instead of 0/1
mpm-query hook: distinguish between DECLINED and APR_ENOTIMPL so that . ap_mpm_query() can return APR_EGENERAL if called too early (for debugging a module) . some hypothetical module which implements the mpm-query hook can bypass the MPM with APR_ENOTIMPL
the mpm_get_child_pid hook is unnecessary, as was the per-MPM MPM_CHILD_PID() macro which it replaced axe this new hook, and use ap_get_scoreboard_process() instead
change commentary to note MPM API changes: MPM_ macros to mpm_ hooks
axe unmaintained 1.3-era code to support AUX, SunOS, IRIX, Next, Tandem, MPE, LynxOS, QNX, and UnixWare
remove TPF support
axe the unnecessary AP_MPM_HARD_LIMITS_FILE
no longer conditional; although some are now in mpm_unix.c
resurrect the old (pre-r757867) compiled-in MPM_NAME value, but via a hook for dynamically linked MPMs
dangling semis lead to warnings with Sun Studio
fix inconsistent defs of ap_mpm_note_child_killed()
axe the remaining checks of AP_MPM_WANT_foo to see what code to generate MPMs no longer provide those definitions (the signal server support is an interesting problem, since it has to be known before loading loading the MPM)
Introduce a new set of APIs to allow MPMs to be proper modules instead of integral parts which share global variables, functions, and macros with the rest of httpd. Converted now: prefork, worker, event, simple, WinNT* *WinNT hasn't been built or tested, and relies on a hack to include the WinNT mpm.h to disable Unixy MPM support routines in mpm_common.c
API Cleanup in preperation for 2.4.x, make sure all exported functions or variables contain an ap_ prefix.
Wrap the global count of privileges handlers operating. Silence grumblers.
Switch all unix MPMs to use drop_privileges hook (mod_unixd) for startup and add a flag to prevent running without any module taking responsibility for managing system privileges!
Use correct Doxygen keywords for functions and variables. TODO: figure out whether those keywords are actually necessary. HTML-ify some documentation comments for benefit of Doxygen.
Add alternative fixes for CVE-2007-3304: * configure.in: Check for getpgid. * include/mpm_common.h (ap_mpm_safe_kill): New prototype. * server/mpm_common.c (reclaim_one_pid): Ensure pid validity before calling apr_proc_wait(). (ap_mpm_safe_kill): New function. * server/mpm/prefork/prefork.c, server/mpm/worker/worker.c, server/mpm/experimental/event/event.c: Use ap_mpm_safe_kill() on pids from the scoreboard, throughout. * include/ap_mmn.h: Minor bump.
Revert r547987 ("svn merge -c -547987 .")
PID table impl: parent process keeps a local table store of Apache child process PIDs and uses that to check validity of what's in the scoreboard.
Once SSLMutex allowed for the setting of both the locking method and the lockfile location, I never liked how AcceptMutex was linked to LockFile. This seemed unnecessary. Much better to have AcceptMutex do both as well. Plus, now that we will likely see other modules require a "standard" way of setting mutexes, why not have Apache provide that as an API of sorts. Anyway, LockFile is now depreciated and AcceptMutex is now SSLMutex-like. We also provide a short function that "parses" out a mutex parameter and strips out the mechanism and lockfile location. AcceptMutex and SSLMutex is this capability.
update license header text
Update the copyright year in all .c, .h and .xml files
*how* did I mis-spell that.
Move the "GracefulShutdownTimeout" command definition into mpm_common
Doxygen fixup / cleanup submited by: Neale Ranns neale ranns.org reviewed by: Ian Holsman
Add ap_relieve_child_processess(), a non-infanticidal copy of ap_reclaim_child_processes(). Allows us to waitpid() each process in the scoreboard and each "extra" process with a single call.
Move the "GracefulShutdownTimeout" directive into mpm_common, for re-use with other MPM's.
Silly me, I forgot to commit this; the definitions for the GRACEFUL_STOP signal.
Remove support for the threaded-mpm's on Linux 2.0, and de-autoconf the graceful restart signal. Frees up SIGWINCH for implementing graceful stop. See <20050727114058.GA3390@stdlib.net> and subsequent thread on httpd-dev.
Add monitor hook (discussed under "watchdog" thread).
Update copyright year to 2005 and standardize on current copyright owner line.
worker MPM: Fix a problem which could cause httpd processes to remain active after shutdown. The problem occurred when a scoreboard entry currently in use by an exiting child process was used for a new child process. At that point, the MPM forgot about the exiting child process, so ap_reclaim_child_processes() wouldn't be able to forceably terminate it. (An exiting child process may *never* exit due to a stuck or long-running request being handled on one of the threads.)
general property cleanup
use existing directive name ThreadStackSize instead of WorkerStackSize as made obvious by: Brad Nicholes
Threaded MPMs for Unix and Win32: Add WorkerStackSize directive to override default thread stack size for threads which handle client connections. Required for some third-party modules on platforms with small default thread stack size. This is also useful for trimming back the stack size on platforms with relatively large default stack size in order to conserve address space for supporting more threads per child.
* include/mpm_common.h (ap_pod_t): Remove 'sa' field. * server/mpm_common.c (ap_mpm_pod_open, dummy_connection): Use ap_listeners->bind_addr for the dummy connection rather than doing a name lookup on the first listener's hostname and using one of the addresses returned. PR: 27313
Add a new directive EnableExceptionHook that must be specified for exception hooks to be called (in addition to the build time requirements). The 2.1-dev feature is now more aligned with the 1.3.30-dev feature, in that there is a build-time requirement as well as a configuration requirement.
fix name of The Apache Software Foundation
apply Apache License, Version 2.0
update license to 2004.
consolidate code related to sig_coredump a note on perchild: perchild exception handling was busted before this and is still busted the problem I noticed was that a client that exposes a segfault never gets its connection dropped and the parent never notices that the child process that segfaulted hasexited
Linux 2.4+: enable coredumps when Apache is started as root if
CoreDumpDirectory is explicitly coded
finished that boring job: update license to 2003. Happy New Year! ;-))
fix ap_mpm_set_max_mem_free declaration to match mpm_common.c
Add missing declarations of the new max_mem_free stuff so prefork will compile
Add "-k start|startssl|restart|graceful|stop" support to httpd for the Unix MPMs. These have semantics very similar to the old apachectl commands of the same name. The use of stderr/stdout and exit status for error conditions needs to be revisited. For now it matches apachectl behavior. Justin Erenkrantz got the ball rolling with this feature. Some of his support code was used unchanged. Other code was shuffled around and modified or rewritten.
Syncing makes no sense now
Fold the compiled-in knowledge of the allowable AcceptMutex settings into its help entry. Requires the use of a extern string rather than a function call for the initialization to be valid in the macro (Thx to Jeff!). In the meantime, bump down the error logging until we deal with true default and configured setting information ala 1.3. PR: Obtained from: Submitted by: Reviewed by:
Bring 2.0 up to parity, a bit, with how much info we provide to the admin regarding valid values for AcceptMutex. Should also tell 'em what "default" actually maps to, but that can wait. PR: Obtained from: Submitted by: Reviewed by:
Update our copyright for this year.
Added the #ifdef's to the prototypes to match the corresponding source code
handle the disappearance of apr_lock_create_np() and apr_proc_mutex_create_np() and the new parameter to apr_lock_create() and apr_proc_mutex_create()
Get mod_cgid killed when a MPM exits due to a fatal error. Presumably other such processes are affected to. Now we give main() a chance to clean up.
Fix the reporting for child processes that die. This removes all of the non-portable W* macros from Apache. Submitted by: Jeff Trawick and Ryan Bloom
namespace-protect accept_lock_mech fix a bug in the worker MPM which effectively disabled the AcceptMutex directive
change the name of AP_MPM_NEEDS_RECLAIM_CHILD_PROCESSES to be more consistent with similar names added recently; this also cleans up an #if/#ifdef discrepency
(hopefully) get WinNT MPM to build using mpm_common.c code; a few notes: . the selection of ap_sock_disable() is certainly ugly, but that may need to be cleaned up in a different manner... . the directive functions couldn't be AP_DECLARE() if they are to be compatible with AP_INIT_TAKExxx(); this is an old restriction
allow non-Unix MPMs to use mpm_common.c by not automatically building in Unix-specific code
Begin to sanitize the MPM configuration directives. Now, all MPMs use the same functions for all common MPM directives. This should make it easier to catch all bugs in these directives once. Everybody should check their favorite MPM to ensure that it still compiles, and that these directives work. This is a big patch, and although it looks good, and things compiled for me, that is no garauntee that it will work on all platforms. :-) Submitted by: Cody Sherr <csherr@covalent.net>
Doc formatting fixes
fix memory leak of apr_sockaddr_t and apr_socket_t in ap_mpm_pod_signal, called by perform_idle_server_maintenance. allocate & init one apr_sockaddr_t for the dummy connect at pod open time. use a temporary subpool for the apr_socket_t
First pass at the pipe_of_death logic for the prefork MPM. This does pass some initial testing, but it needs to be banged on more. It looks like if the server gets a lot of requests to restart all at once, there are potential problems, but other than that this does seem to solve our current restart issues.
Get rid of some warnings which crept into the Unix MPMs a few days ago. mpm_common.h started referencing AP_MPM_NEEDS_RECLAIM_CHILD_PROCESSES but did not include the header file where this might be defined. The result was no prototype for ap_reclaim_child_processes() on platforms which needed it.
Declaration of ap_reclaim_child_processes() in exports.c needs to be conditional in the same way that the function's definition is so give it a suitable macro that will be recogized by the scripts that make exports.c.
More doxygenation.
Rely on APR to determine whether or not we have netinet/tcp.h. This test requires a special work-around for IRIX 6.5, which will be in APR soon. There is no need for it in Apache. The include of netinet/tcp.h was removed from perchild.c and threaded.c. They no longer seem to be needed there. PR: 6459
Don't directly include ap_config_auto.h directly. It isn't available on Windows platforms. Including ap_config.h will pick it up, or it will grab the appropriate Windows header/defines.
Update copyright to 2001
Windows doesn't have ap_config_auto. Perhaps we need a HAVE_CONFIG_AUTO macro?
The "src/" directory no longer exists. Clean up the HARD_SERVER_LIMITS warning msg to reflect the current directory structure.
*) remove some obsolete/unused defines from httpd.h. *) remove DEFAULT_XFERLOG from main.c; it is never set/used *) move ap_get_max_daemons() to ap_mpm.h *) move DEFAULT_LISTENBACKLOG to mpm_common.h
Move initgroupgs, ap_uname2id and ap_gname2id from util.c to mpm_common.c. These functions are only valid on some platforms, so they should not be in the main-line code. These functions are also not portable to non-unix platforms, so they don't really belong in APR. Since they are only used in MPMs, for right now, I am moving them to mpm_common.c
APRize disabling nagle (setting TCP_NODELAY). Note that several areas have not been tested as they apply to MPMs or APR code that I can't test. PR: Obtained from: Submitted by: Reviewed by:
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. PR: Obtained from: Submitted by: Reviewed by:
Update the mpm_common.h file with docs to use ScanDoc
prefix libapr functions and types with apr_
Get ap_socket_disable_nagle() working again. Submitted by: Greg Ames Reviewed by: Jeff Trawick
Move sock_disable_nagle to mpm_common.c. Rename it to ap_sock_disable_nagle. Again, I tried to modify all MPMs that are currently using this code.
Move process_child_status to mpm_common.c. This requires re-naming it to ap_process_child_status and opening up ap_coredump_dir. I have modified all of the MPMs that I saw using this function to work with this patch. Sorry if I broke anybody.
Fix error messages issued from MPMs which explain where to change compiled-in limits (e.g., ThreadsPerChild, MaxClients, StartTreads). missing: the same minor changes for the 2nd BeOS MPM Submitted by: Greg Ames Reviewed by: Jeff Trawick
Fix a memory leak with ap_wait_or_timeout.
Prototypes for the visible functions in mpm_common.c. Submitted by: Jeff Trawick <trawickj@bellsouth.net> Reviewed by: Roy Fielding
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| apache@apache.org | ViewVC Help |
| Powered by ViewVC 1.1.2 |