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.
Hmmm... forgot git commit/dcommit.
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.
Bring back OS/2 support. Reverses r758929 with a little bit of conflict resolution.
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
axe unmaintained 1.3-era code to support AUX, SunOS, IRIX, Next, Tandem, MPE, LynxOS, QNX, and UnixWare
remove TPF support
remove OS/2 platform support
remove BeOS OS support
remove leader, perchild, and threadpool MPMs (other than non-English bits in common parts of the manual)
fix mpm_get_name hook a string can't be used as the declined value since the hook macro must compare retcodes from hooks with that declined value (thanks, gcc/Joe) accommodate in ap_show_mpm() since we don't want to return NULL to the caller of this simple API
refactor mpm_common.c into itself and mpm_unix.c for unix-specific quirks
resurrect the old (pre-r757867) compiled-in MPM_NAME value, but via a hook for dynamically linked MPMs
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
* server/mpm_common.c (dummy_connection): If possible, use a non-SSL listening port to use for the dummy connection, to avoid causing (confusing) error log spam by sending EOF down an SSL port. PR: 39653
API Cleanup in preperation for 2.4.x, make sure all exported functions or variables contain an ap_ prefix.
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!
Add dummy ap_mpm_register_timed_callback for other MPMs besides Event.
Avoid core dumps by getting the signal_description only if a process actually terminated on a signal. Update status only on a valid wait response.
* server/mpm_common.c (reclaim_one_pid): Retrieve the exit status from apr_proc_wait(); call ap_process_child_status() for children which terminate, to ensure that abnormal exits (e.g. SIGSEGV) are logged. PR: 42757
Unless I've misread this, POD is write-blocking, read nonblocking timeout 0.
ap_available_mutexes_string and ap_add_available_mutexes_string cannot be data symbols when mod_ssl is built as a loadable module; using an external string constant in a loadable module is not portable. Also reorganize file and sem to follow their explicit mechanisms, and ensured that the explicit mechansims are listed in order of preference. This raises a question, would [fcntl|file] be a clearer way of indiciating what the file/sem methods devolve to?
getpgid() returns a pid_t
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 .")
* server/mpm/prefork/prefork.c (reap_children), * server/mpm_common.c (ap_wait_or_timeout): Remove dead code; NEED_WAITPID has never been defined by the 2.x build system.
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.
* server/mpm_common.c (dummy_connection): Use "OPTIONS *" for request on dummy connection. PR: 41796
* Nitpicking: Get the comment right.
Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory can work after that terminating signal. Submitted by: Eric Covener <covener gmail.com> Reviewed by: trawick
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.
Replace ap_get_server_version with ap_get_server_banner() and ap_get_server_description(). High-level summary: The full server version information is now included in the error log at startup as well as server status reports, irrespective of the setting of the ServerTokens directive. Third-party modules must now use ap_get_server_banner() or ap_get_server_description() in place of ap_get_server_version().
update license header text
Update the copyright year in all .c, .h and .xml files
No functional Change: Removing trailing whitespace. This also means that "blank" lines consisting of just spaces or tabs are now really blank lines
No functional change: simple detabbing of indented code.
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.
Make the neccessary changes to mpm_common and main to support a graceful-stop command line argument.
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 a User-Agent to the dummy connection code to ease admin debugging. Submitted By: Colm MacCarthaigh <colm stdlib.net>
* server/mpm_common.c (dummy_connection): Fix length argument passed to apr_socket_send. Remove redundant _shutdown call.
Argh. Style Fix. Habits are hard to kill.
*) server/mpm_common.c: Send a simple HTTP 1.0 request to every listener socket, instead of just closing the socket. This fixes shutdown of the Worker MPM on FreeBSD, when Accept Filters are enabled. In the future, we need a method to send a simple request for all protocols. Currently this is very specific to HTTP and FreeBSD's Accept Filter.
Fix for reported compile problem
Add monitor hook (discussed under "watchdog" thread).
restore google-ability of an ancient message of great importance
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.)
zap extra blank in error message
general property cleanup
* server/mpm_common.c (dummy_connection): Log the address if the connect() fails.
Unix MPMs: Shut down the server more quickly when child processes are slow to exit.
tweak error handling when reading the pid file previously strtol() would look at unitialized storage, but now the string is terminated where the data read ends give user a hint about removing the file if we can't read/parse it properly (somehow I ended up with a truncated httpd.pid on my own system, leading to these tweaks)
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
* server/mpm_common.c (ap_process_child_status): Remove an escaped \n in the error log and add some political correctness.
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
avoid losing a subpool (until restart) on a rare error path
update license to 2004.
fix a problem where a crash of a non-MPM child process could result in an error log message stating that the parent had crashed the problem, which affected all *X platforms, was due to an attempt to support the general problem with linuxthreads; this change leaves us with a relatively obscure hole when running on linuxthreads (see comments)
Add fatal exception hook for use by debug modules. The hook is only available if the --enable-exception-hook configure parm is used. Sample users at http://httpd.apache.org/~trawick/exception_hook.html
build with latest other-child API changes
switch to APR 1.0 API (which is still in flux) because of the changes to the argument lists of apr_mmap_dup and apr_socket_create, 2.1-dev won't build with apr and apr-util's 0.9 branch anymore
Enable ap_sock_disable_nagle for Windows. This along with the addition of APR_TCP_NODELAY_INHERITED to apr.hw will cause Nagle to be disabled for Windows.
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
SECURITY: Eliminated leaks of several file descriptors to child processes, such as CGI scripts. PR: 17206 Submitted by: Christian Kratzer <ck@cksoft.de>, Bjoern A. Zeeb <bz@zabbadoz.net> Reviewed by: Joe Orton, Will Rowe
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! ;-))
http occurances to update for apr_socket_opt_get/set
Timeout/time fixes
Now why did I commit that symbolic constant in APR again? Exactly... to use it here.
Add a new directive: MaxMemFree. MaxMemFree makes it possible to configure the maximum amount of memory the allocators will hold on to for reuse. Anything over the MaxMemFree threshold will be free()d. This directive is usefull when uncommon large peaks occur in memory usage. It should _not_ be used to mask defective modules' memory use.
Well the wrappers work out well... nice to be able to put off committing these API changes until the evening ;)
the "-k startssl" parameter is reverted by popular demand
fix data initialization problem in new Unix -k option processing
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.
stop using APLOG_NOERRNO in calls to ap_log_?error()
Remove unnecessary includes of apr_lock.h
Added support for Posix semaphore-based mutex locking (AcceptMutex posixsem). It's between pthread and sysvsem in the DEFAULT priority ranking. This makes it the new default for Darwin, and adds support for it for other platforms as well (like Solaris). PR: Obtained from: Submitted by: Reviewed by:
PR: Obtained from: Submitted by: Paul J. Reder Reviewed by: Remove the MPM_SYNC_CHILD_TABLE macro since there is no longer a scoreboard file that needs to be synched.
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:
Fix a hang condition with graceful restart and prefork MPM in the situation where MaxClients is very high but much fewer servers are actually started at the time of the restart. The way we notify an entire generation to die at once is changed so that we don't have to use the pod (and deal with the ease of filling the kernel pipe buffer).
don't check for EINTR after a call to apr_file_write(); you'll never see it
Simplify s/APR_OS_PROC_T_FMT/APR_PID_T_FMT/, apr_os_foo entities aren't for external consumption.
Eliminate potential ap_server_root_relative segfaults, with the input of Jeff Trawick's style changes to the first patches. Doesn't include the fixes to ssl [more complex], and we won't trap errors that involve ap_serverroot, since we presume that was normalized on the way in. Therefore, testing ap_server_root_relative(DEFAULT_FOO) cases should never become necessary.
Update our copyright for this year.
Make this look a bit better.
Style Police comming through...
don't wait nearly so long for child processes to go away the adjustment of the wait time was done too soon now the code should be consistent with 1.3 behavior
close an extremely unlikely file descriptor leak in dummy_connection()
if a child detects a resource shortage on accept(), limit the rate of fork()s to 1 per second until the situation clears up. Inspired by: Martin Kraemer
This patch eliminated from the _SHARED_ segment of the scoreboard all pointer math. This is required for portable scoreboards. vhost becomes the 'vhost name string' so it now survives ap_generation clicks. next was apparently never used. This patch also accounts for the changes to the apr_shm api, and gives Win32 the magic of a shared scoreboard. Breakage aplenty on non-win32 platforms, I suspect, but this radical surgery, and culling of unused functions, was really, really needed.
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()
Change core code to allow an MPM to set hard thread/server limits at startup.
Fix a bug in how we select the IP for the POD to connect to for dummy connects (dislodging a doomed child from the accept mutex). No longer do we assume that the child is listening to 127.0.0.1, but instead we just pick the first hostname/port from the listen rec.
fix a problem with graceful restart. If you look at daedalus early in the morning, you will usually see lots ( >50 ) of old generation processes happily serving requests with yesterday's config. Late in the afternoon, they are usually gone due to MaxRequestsPerChild and perform_idle_server_maintenance. ap_mpm_pod_signal can time out during connect(), causing it to exit with an error. If it was called by ap_mpm_pod_killpg during graceful restart, ap_mpm_pod_killpg will exit immediately. This can cause us to not write enough characters to the pod to kill off all the old generation children. This fix decouples the loop which writes to the pod from the loop which generates dummy connect()s. The connect()s aren't as important as writing to the pod when there is a steady stream of inbound connections. also, close the socket and destroy the temporary pool if the connect() fails.
get prototype for strcasecmp() on AIX
make sure ap_process_child_status() always returns something
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
Switch proc_pthread to pthread for the AcceptMutex directive.
Add an extra parameter to all apr_proc_wait() calls for the new "exitcode" parameter. Pass NULL because we aren't interested in the value.
Switch back to SIGUSR1 for graceful restarts on all platforms that support it. This defines a symbol called AP_SIG_GRACEFUL in ap_config_auto.h which will have the appropriate signal value. All direct references to SIGWINCH have been replaced with AP_SIG_GRACEFUL. On Linux 2.0, use SIGWINCH instead since SIGUSR1 is used by glibc 2.0's user-space threading library to control threads. All later versions of Linux/glibc don't have this problem. (Not to mention the security holes in older Linux versions which make it unsuitable for use as a web server.) If your platform doesn't have SIGUSR1, use the appropriate mojo in configure to define what your graceful restart signal should be. In theory, a configure switch could be added to allow the admin to specify the appropriate signal that should be used. This is left as an exercise to the reader for now. The docs need to be updated. Since the signal is now configurable, just saying SIGUSR1 for graceful restart isn't completely true. Also, the apachectl functionality needs to be moved into httpd - this is what Win32 does and it makes us consistent across platforms. Roy issued a veto against use of SIGWINCH by default, so this should resolve that veto.
Added NetWare to the #ifdef list
The Unix MPMs other than perchild now allow child server processes to use the accept mutex when starting as root and using SysV sems for the accept mutex. Previously, this combination would lead to fatal errors in the child server processes. perchild can't use SysV sems because of security issues. translation: steal apache 1.3 code to call semop(IPC_SET) on the semaphore to set permissions and uid/gid
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>
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
Changed AP_MPMQ_MAX_DAEMONS to refer to MaxClients and added an AP_MPMQ_MAX_DAEMON_USED to refer to the highest daemon index actually used in the scoreboard. I also updated the pertinent calls. Paul J. Reder
Changes to back out inherit flag from apr_os_sock_make() and apr_socket_create()
Added an inherit flag to apr_socket_create and other socket creation functions. This allows APR programs to specify that a socket should be passed to any child processes that are created. The inherit flag is only meaningful if programs use apr_process_create(). This also adds a couple of macros that allow APR types to set and unset the inherit flag. This also fixes Apache to use the new API.
Fix an issue with the pod and prefork: when the parent process wakes up a server process via connect(), use an APR timeout on the connect() so that we don't hang for a long time if there aren't server processes around to do accept()
back out a change from last week that reversed the meaning of pod_in and pod_out; after that change, all read and write syscalls on the handles failed because pod_in was only readable and pod_out was only writable we could instead reverse the order of the parameters to apr_pipe_create so that the descriptors returned by pipe() get put in the right place, but it seems better to stick with APR terminology for what is the input handle and what is the output handle
pod_in shouldn't be non-blocking after all Submitted by: Ryan Bloom
the input handle to the pod (used by child processes) needs to be non-blocking before this, no requests could be processed by prefork since after connect from the client prefork would block reading the pod the write handle to the pod probably doesn't have to be non-blocking, but getting EAGAIN for the pipe-full condition, rather than blocking, is nice for now since it would tend to indicate that something is FUBAR; on the other hand, this probably needs to change in order to support more than 4K workers
It helps to write to the input side of the pipe, and read from the output side.
trace failures of a couple of crucial socket calls in ap_mpm_pod_signal()
improve ap_mpm_pod_signal() by not let it loop until it fills the pipe it still doesn't handle the pipe being full for other reasons (bazillions of child processes?), but I'm not sure that is a real occurrence
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.
Remove calls to apr_proc_probe_writable_fds(). The function is going away.
Build (and do so cleanly) when !APR_HAS_OTHER_CHILD.
Changes required to make prefork clean up idle children properly. There was a window during which a starting worker deadlocks when an idle cleanup arrives before it completes init. Apache then keeps trying to cleanup the same deadlocked worker forever (until higher pids come along, but it still will never reduce below the deadlocked pid). Thus the number of children would not reduce to the correct idle level.
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.
Allow modules to query the MPM about it's execution profile. This query API can and should be extended in the future, but for now, max_daemons, and threading or forking is a very good start. Non-Unix MPM's do have the MPM query function, although there is no garauntee that the information is perfect, please check. Submitted by: Jon Travis <jtravis@covalent.net>
Update copyright to 2001
*) 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
toss the signal description stuff from unixd.[ch], beosd.h, and spmt_os2. use the new functionality in APR.
renaming various functions for consistency sake see: http://apr.apache.org/~dougm/apr_rename.pl PR: Obtained from: Submitted by: Reviewed by:
Make the Prefork MPM use SIGWINCH instead of SIGUSR1 for graceful restarts.
Add headers needed for getpwnam & getgrnam prototypes & types.
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
*) Compensate for recent changes in the APR headers. Specifically, some files need to specifically include stdio.h, or a particular apr_*.h header. *) Adjust callers of apr_create_process() to deal with the extra "const" *) Add "const" to args of ap_os_create_privileged_process()
The lots of little ones... APR_IS_STATUS_condition(rv) conditional macros replacing the majority of fallible rv == APR_condition tests. But there are lots more to fix, these are the obvious ones that already did proper canonical error conversion.
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:
prefix libapr functions and types with apr_
Eliminate references to specific MPMs from mpm_common.c by having the MPMs export interfaces to the tables used to keep track of children.
Change semantics of ap_child_table somewhat. Instead of checking for a dead process with status == SERVER_DEAD, check with pid == 0. This makes somewhat more sense conceptually, and also matches the behavior of MPMs that use a shmem scoreboard to track children.
Add a new MPM. Currently this is almost an exact copy of the dexter MPM. In time, this will be the MPM that allows each child process to have a unique user id. I need a place to work and keep track of my changes. Don't expect this to work until next week sometime.
Cleanup the MPM #defines. Each MPM #defines a unique name that identifies it to the system. That name should be of the format NAME_MPM where name is something like DEXTER, MPMT_PTHREAD, SPMT_OS2, etc.
Fix some build issues for dexter: . dexter/scoreboard.c needed apr_strings.h to get the right function prototypes . main/mpm_common.c needed to recognize that we were building for dexter; otherwise, no ap_reclaim_child_processes() was compiled and linking failed (It would be nice to standardize on which preprocessor symbols are checked for... mpmname_MPM seems nice enough. Didn't the check for symbol mpmname (no "_MPM") come with mpmt.c?)
Get ap_socket_disable_nagle() working again. Submitted by: Greg Ames Reviewed by: Jeff Trawick
Add APR_EOL_STR for a platform specific text delimiter, provided by apr.h (defined in apr.h.in and apr.hw). This is needed -only- in APR created files (true raw files) such as logs. It is not required in any splat to screen (stderr/stdout) formatting, nor any html markup. Some other modules slipped through in the prior apr_strings.h commit. Sorry 'bout that. PR: Obtained from: Submitted by: Reviewed by:
#ifdef APR_HAS_OTHER_CHILD to #if APR_HAS_OTHER_CHILD. Not tested.
Remove all pthreads calls from the mpmt MPM prefork emulation. This makes the mpmt MPM look almost exactly like the original prefork MPM. Basically, all that's left is re-naming the defined directives so they work with 1.3 config files. That will come later.
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 mpm_common for use with the real prefork MPM. This was broken when mpmt was added. This change can be removed when the MPM stuff calms down a bit and either mpmt or three separate MPMs are chosen.
Initial version of the mpmt MPM. This MPM can emulate dexter, mpmt_pthread, and prefork. This basically just combines a lot of common code. This builds and serves pages in all three modes, but I don't think killing the server works in any of them. The configuration system hasn't changed at all, so using --with-mpm=(prefork|dexter|mpmt_pthread) all work. My goal is to remove the three separate MPMs in a few days, and then work on merging one of the BeOS and the OS/2 MPMs into this as well. :-)
Add the EXTRA_LIBS to get apache building on BONE again and now that we're using ap_sleep remove the need for sys/socket.h in mpm_common.c
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.
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.
Small change in an effort to get restarts working correctly on BeOS.
Update mpm_common to work with the latest BeOS version and start adding support for a new BeOS MPM that I'll commit in a few days.
Add sys/time.h to mpm_common to include define of timeval.
Remove waitpid from the config checks and all calls to waitpid from the server.
Add support for the BeOS mpm. Also change some things to make it easier for future additions.
Only compile ap_reclaim_child_processes() if a CHILD_INFO_TABLE is known.
Fix a memory leak with ap_wait_or_timeout.
use the correct size for 'ret'
Fix a small bug/warning when compiling with use-maintiner-mode related to the ap_proc_t change.
Convert ap_proc_t to a complete type. This lets us access the pid directly. Only the prefork MPM has been ported so far, the rest of the Unix MPM's are coming later today.
Temporary fix for misuse of int instead of pid_t. Also include mpm_common.h to pick up the common prototypes.
ap_wait_or_timeout() can't be static since it is called from dexter.c, prefork.c, and mpmt_pthread.c. (Yes, we still need a function prototype somewhere, but at least we can link properly now.)
Move wait_or_timeout from the MPM's into the new mpm_common.c file. I also renamed wait_or_timeout to ap_wait_or_timeout for namespace protection.
First function removed from Unix MPM's and moved to a common file. This work is not anywhere near finished, but the cleanup has begun at least. Had to make a couple of variables non-static, so a name change was required since they are now viewable from outside the library. The advantage to this is code that is much easier to maintain into the future, because it is duplicated less often.
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 |