Checkout Tools
  • last updated 2 hours ago
Constraints: committers
Constraints: files
Constraints: dates
quiet a bogus gcc warning that crops up with -O2

  1. … 4 more files in changeset.
implement FOREGROUND for perchild and beos MPMs too

  1. … 3 more files in changeset.
Migrate perchild to the new lock API, and clean up some of the logic

surrounding the FD passing. This doesn't work yet, but it is getting

closer. Currently, the problem is that we don't correctly read the data

from the socket so that it can be passed to the correct child.

  1. … 3 more files in changeset.
Make perchild work with the new bucket_allocation API. Also, allow

the Perchild directives to take both numerical UID/GID and the

logical user name/group name.

PR: 9784

Submitted by: named UID/GID logic: Scott Lamb <>

  1. … 1 more file in changeset.
Get the Perchild MPM to compile and serve pages again. There are a lot

of bugs left in this, but I am taking things one step at a time. This

will work again. This also gets perchild using the correct variable for


PR: 9856, 9855, 9052

  1. … 3 more files in changeset.

Add an allocator-passing mechanism throughout the bucket brigades API.

From Apache's standpoint, the apr_bucket_alloc_t* used throughout a given

connection is stored in the conn_rec by the create_connection hook. That

means it's the MPM's job to optimize recycling of apr_bucket_alloc_t's --

the MPM must ensure that no two threads can ever use the same one at the

same time, for instance.

  1. … 43 more files in changeset.
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.


Obtained from:

Submitted by:

Reviewed by:

  1. … 8 more files in changeset.
no need to kill the scoreboard cleanup anymore on graceful

restart; the scoreboard is longer-lived


Obtained from:

Submitted by:

Reviewed by:

  1. … 4 more files in changeset.
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.


Obtained from:

Submitted by:

Reviewed by:

  1. … 8 more files in changeset.

The pre_mpm hook creates server-lifetime objects (or at least, for the

generations across graceful restarts.) They should use the process pool.

  1. … 6 more files in changeset.
Update our copyright for this year.

  1. … 260 more files in changeset.
As hinted on dev@httpd, change filter naming schemes to match our

expectations of their usage.

The reason that we should make this change now is that we have changed

the implied meaning of AP_FTYPE_HTTP_HEADER - some users of this should

be PROTOCOL while others should be CONTENT_SET. In order to clarify it,

toss all of the bogus names and force the filter writers to make sure

they understand what they are doing.

CONTENT_SET is new (horrible name - change if you have better idea), but

it indicates that it should run between RESOURCE and PROTOCOL.

mod_deflate is the ideal CONTENT_SET filter.

The changed type names are:


HTTP_HEADER is now PROTOCOL. However, most filters that used HTTP_HEADER

may want CONTENT_SET. (Only things like POP and HTTP belong as PROTOCOL.)

MMN bump since all filters need to be recompiled due to filter reordering.

  1. … 16 more files in changeset.
Implement apr_proc_detach changes and allow -DNO_DETACH in the multi-process

mode to not "daemonize" while detaching from the controlling terminal.

This is necessary for Apache to work with process-management tools like

AIX's "System Resource Controller" as well as Dan Bernstein's "daemontools".

What this means is apache must _NOT_ be a process group leader if called

with the -DNO_DETACH flag.

Submitted from: Jos Backus <>

Edited/Reviewed by: Aaron Bannert

  1. … 4 more files in changeset.
Implement new ScoreBoardFile directive logic. This affects how we

create the scoreboard's shared memory segment. We now have the best of

both worlds:

if config specifies ScoreBoardFile

create name-based shared memory, errors are fatal

else /* we get to choose */

create anonymous shared memory


create name-based shared memory from DEFAULT_SCOREBOARD


errors are fatal

This gives us the flexibility to have anonymous shared memory (on platforms

that support it) as well as name-based shared memory when third-party

programs want access to our scoreboard.

The ap_scoreboard_fname static variable is now owned by the scoreboard.c

file, and no longer by the MPMs. The MPMs MUST NOT set ap_scoreboard_fname

to a default, since that will override the default creation logic and

only allow name-based segments.

Submitted by: Aaron Bannert

Reviewed by: Justin Erenkrantz

  1. … 13 more files in changeset.
Remove the install_transport_filters hook. The same function can be

acheived with the pre_connection hook. I have added the socket to the

pre_connection phase to make this possible.

Reviewed by: Bill Stoddard

  1. … 8 more files in changeset.
Not being able to bind to a socket is a fatal error. This makes all

MPMs treat it as such. We now print a message to the console, and return

a non-zero status code.

  1. … 5 more files in changeset.
Reintroduce the create_connection hook. This hook is required to enable

modules to completely take over all network i/o from the core.

  1. … 12 more files in changeset.
This patch restores most of Ryan's patch (11/12/2001) to remove the

client_socket from the conn_rec. Diffs from Ryan's patch include:

- rename the create_connection hook to install_transport_filters

- move the point of invocation of the hook till after the call to

after ap_update_vhost_given_ip to enable the hook to use vhost

config info in its decision making.

  1. … 11 more files in changeset.
Take advantage of the new pre_config return value when apr_proc_detach

fails. I'll be making some changes to apr_proc_detach, and it will be

nice to be able to report runtime errors.

Tested on worker but the code changes are identical on other MPMs.

  1. … 4 more files in changeset.
The pre_config hook now takes a return value. This allows modules to

cause the server to bail out under error conditions.

  1. … 16 more files in changeset.
fix the problem where a scoreboard init failure could leave

mod_cgid stranded

a pre_mpm hook can now return failures, so problems in

ap_create_scoreboard percolate back to a place where Apache

can exit cleanly

  1. … 11 more files in changeset.
Remove the create_connection hook and put the client_socket back into the

conn_rec. The create_connection_hook has a design flaw that prevents it

from making decisions based on vhost information.

  1. … 15 more files in changeset.
Change ap_get_brigade prototype to remove *readbytes in favor of readbytes.

If you need the length, you should be using apr_brigade_length. This is

much more consistent. Of all the places that call ap_get_brigade, only

one (ap_http_filter) needs the length. This makes it now possible to

pass constants down without assigning them to a temporary variable first.


- Change proxy_ftp to use EXHAUSTIVE mode (didn't catch its -1 before)

- Fix buglet in mod_ssl that would cause it to return too much data in

some circumstances

  1. … 16 more files in changeset.
Input filtering prototype change: Socket blocking type should be

separate from the input filter mode type.

We also no longer look at readbytes to determine the method of

filter operation. This makes the use of filters more obvious and

allows a wider range of options for input filters modes.

To start with, the new input filter modes are:

AP_MODE_READBYTES (no more than *readbytes returned)

AP_MODE_GETLINE (old *readbytes == 0 case)


AP_MODE_SPECULATIVE (will be used in a future ap_getline rewrite)

AP_MODE_EXHAUSTIVE (old *readbytes == -1 case)

AP_MODE_INIT (special case for NNTP over SSL)

The block parameter is an apr_read_type_e: APR_BLOCK_READ, APR_NONBLOCK_READ

This also allows cleanup of mod_ssl's handling in the getline case.

Reviewed by: Ryan Bloom (concept), Greg Stein (concept)

  1. … 18 more files in changeset.

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.

  1. … 20 more files in changeset.
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()

  1. … 12 more files in changeset.
add ThreadLimit/ServerLimit to perchild

  1. … 2 more files in changeset.
fix a nasty bug which periodically led to segfaults trying to

access the scoreboard

  1. … 1 more file in changeset.
This gets perchild compiling and serving pages again. It does NOT

pass file descriptors yet. That is a much bigger project.

  1. … 3 more files in changeset.
Add a comment about the passoff logic.

  1. … 1 more file in changeset.