Commit Graph

725 Commits

Author SHA1 Message Date
e82b063203 Welcome to .33-dev.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93414 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 07:32:51 +00:00
9e1fd9da4a Bump for .32
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93412 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 07:31:55 +00:00
9ad90284cd 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


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93366 13f79535-47bb-0310-9956-ffa450edef68
2002-02-11 23:20:16 +00:00
d9998aa77b Updated to use the newer locking API's. This file should probably be moved
to the httpd-ldap with the rest of the auth_ldap stuff.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93339 13f79535-47bb-0310-9956-ffa450edef68
2002-02-08 18:32:50 +00:00
862f407872 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


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93259 13f79535-47bb-0310-9956-ffa450edef68
2002-02-05 22:18:49 +00:00
bd3d360392 Reintroduce the create_connection hook. This hook is required to enable
modules to completely take over all network i/o from the core.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93171 13f79535-47bb-0310-9956-ffa450edef68
2002-02-01 22:16:31 +00:00
39573f4005 32-dev is now it
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93123 13f79535-47bb-0310-9956-ffa450edef68
2002-01-31 05:28:43 +00:00
abb455ea0d its tag time
v31 is being tagged


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93122 13f79535-47bb-0310-9956-ffa450edef68
2002-01-31 05:22:37 +00:00
5cd5470300 Change the Windows MPM to only use the pre_mpm phase in the parent process.
The child processes use the child_init phase to reattach to the shared
memory.  This makes Windows work like Unix, which should make it easier
for module authors to write portable modules.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93119 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 22:35:57 +00:00
4168820850 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93087 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 19:02:04 +00:00
b7a79f57e3 I think this was supposed to have been bumped a couple times since
the 14th, and was perhaps forgotten about? In any case, it needs to
be bumped now -- pre_config hook return type has changed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93065 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 00:00:39 +00:00
d5fdaf9cfd The pre_config hook now takes a return value. This allows modules to
cause the server to bail out under error conditions.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93063 13f79535-47bb-0310-9956-ffa450edef68
2002-01-28 23:49:40 +00:00
7c1ce28ee1 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


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93055 13f79535-47bb-0310-9956-ffa450edef68
2002-01-28 00:41:32 +00:00
15d2ad0f1a Replaced some more ap_add_output_filter() calls with
ap_add_output_filter_handle() for efficiency


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93051 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 19:12:56 +00:00
327e4989d5 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93050 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 12:52:08 +00:00
011c7375e9 Which PR? I can't count them all. Get QUERY_STRING and PATH_INFO
working again.  Also rounds out our fix to work around negotiated
  directories which Greg Ames fixed; this addition in request.c simply
  shortcuts all further processing.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93045 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 07:44:07 +00:00
196916cef1 Performance improvement: incorporated the use of the new
ap_add_input_filter_handle() and ap_add_output_filter_handle()
functions for core filters


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93040 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 02:13:10 +00:00
08002aaebb Added new functions ap_add_input_filter_handle() and
ap_add_output_filter_handle()

There are many places in the core modules where we do
ap_add_input_filter() or ap_add_output_filter() on a
hardcoded filter name (e.g., "CORE" or "BYTERANGE").
This requires a string-to-filter mapping that wastes
CPU time.  (Even though the string lookup uses a trie
for speed, it still ranks as a big consumer of CPU time
because of the large number of filters added per request.)

The new ap_add_*_filter_handle() functions will allow
us to skip the string-to-filter mapping in cases where
the module adding the filter happens to have the
ap_filter_rec_t* for the registered filter (e.g., because
it's the same module that registered the filter in the
first place).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93039 13f79535-47bb-0310-9956-ffa450edef68
2002-01-27 01:54:54 +00:00
94d01b65aa 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.

Also:
- 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


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93014 13f79535-47bb-0310-9956-ffa450edef68
2002-01-25 01:11:47 +00:00
f885c784d2 Rewrite ap_rgetline to remove the need to have an "internal" brigade stored
in the core_module structure by using the AP_MODE_SPECULATIVE filter mode
to determine if MIME-continuation should occur.

Notes:
- ap_rgetline has a new prototype.
- ap_rgetline returns APR_ENOSPC when we are out of buffer space.

All direct callers of ap_rgetline are now adjusted to handle this new API.
ap_getline will mimic the old API for now.

Reviewed by:	Ryan Morgan


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93011 13f79535-47bb-0310-9956-ffa450edef68
2002-01-24 23:59:51 +00:00
7d32242a14 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_EATCRLF (old AP_MODE_PEEK)
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)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92928 13f79535-47bb-0310-9956-ffa450edef68
2002-01-19 07:45:18 +00:00
a5a68267b1 Allow the user to get detailed debugging information without a full
recompile [absolutely necessary on Win32 and other platforms that
  really don't support administrator-compilation.]

  -e level  follows the LogLevel options.

  The only question, should -e override the compiled-in default for
  the creation of the server_rec?  No strong feeling either way, here.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92891 13f79535-47bb-0310-9956-ffa450edef68
2002-01-17 20:15:12 +00:00
e634f67190 Note the change in the mod_dav provider API.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92849 13f79535-47bb-0310-9956-ffa450edef68
2002-01-14 13:46:59 +00:00
0d1a46028e Bring forward the FileETag directive enhancement from 1.3.23-dev.
(Passes all 61 of the apache/etags.t test.)  Bump MMN due to
	change to core_dir_config structure (new fields at end).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92830 13f79535-47bb-0310-9956-ffa450edef68
2002-01-11 18:55:27 +00:00
821fb2b2ca This needed bumping for all the scoreboard changes; consider it bumped.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92801 13f79535-47bb-0310-9956-ffa450edef68
2002-01-10 05:16:19 +00:00
7e1113f913 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92791 13f79535-47bb-0310-9956-ffa450edef68
2002-01-10 00:28:00 +00:00
b93d482333 Welcome to 2.0.31
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92782 13f79535-47bb-0310-9956-ffa450edef68
2002-01-08 23:42:11 +00:00
510a668b7f About to tag 2.0.30
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92780 13f79535-47bb-0310-9956-ffa450edef68
2002-01-08 23:34:58 +00:00
44d39613d3 Added the #ifdef's to the prototypes to match the corresponding source code
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92774 13f79535-47bb-0310-9956-ffa450edef68
2002-01-08 21:09:02 +00:00
7e5bb49dd2 MMN = Things that go bump in the night.
(limit_req_body is now an apr_off_t)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92712 13f79535-47bb-0310-9956-ffa450edef68
2002-01-02 23:29:13 +00:00
8c16aeeeb8 Fix LimitRequestBody directive by moving the relevant code from
ap_*_client_block to ap_http_filter (aka HTTP_IN).  This is the
only appropriate place for limit checking to occur (otherwise,
chunked input is not correctly limited).

Also changed the type of limit_req_body to apr_off_t to match the
other types inside of HTTP_IN.  Also made the strtol call for
limit_req_body a bit more robust.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92700 13f79535-47bb-0310-9956-ffa450edef68
2002-01-02 07:56:25 +00:00
4d9b06444e Generalized the recent prep_walk_cache optimizations to allow other
modules to register "notes" within the array of working data in
the core_request_config


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92697 13f79535-47bb-0310-9956-ffa450edef68
2002-01-01 20:36:18 +00:00
199e4864fc Performance fix for prep_walk_cache():
Moved the directory/location/file-walk caches from the
request's pool userdata hash table to the core_request_config
struct.

This change removes about 60% of the processing time from
prep_walk_cache().


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92684 13f79535-47bb-0310-9956-ffa450edef68
2001-12-31 08:18:32 +00:00
a329ff6cf9 Make calc_scoreboard_size() and init_scoreboard() usable from MPMs.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92661 13f79535-47bb-0310-9956-ffa450edef68
2001-12-30 13:27:48 +00:00
57b42f96ac 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()


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92653 13f79535-47bb-0310-9956-ffa450edef68
2001-12-29 23:16:24 +00:00
2c44e1c672 tiny cleanup to remove bogus SCOREBOARD_SIZE define
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92650 13f79535-47bb-0310-9956-ffa450edef68
2001-12-29 19:55:46 +00:00
187e9ae3b9 Change core code to allow an MPM to set hard thread/server
limits at startup.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92512 13f79535-47bb-0310-9956-ffa450edef68
2001-12-18 13:48:54 +00:00
97ff8a3f1f As suggested by Josh Slive, add the explicit 'default' to AcceptPathInfo.
I'll leave docs up to him.  The conf becomes a quadstate (undef != default)
  but other than that, it should make things cleaner for the user.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92459 13f79535-47bb-0310-9956-ffa450edef68
2001-12-13 19:13:23 +00:00
b9551a11e8 Jeff's guess, right on. [Thought I committed it all... gotta grab a
clean parallel tree, all my parallel trees are dirty again.]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92447 13f79535-47bb-0310-9956-ffa450edef68
2001-12-13 14:50:36 +00:00
06cf109166 hack up core_dir_config so that server/core.c compiles again
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92446 13f79535-47bb-0310-9956-ffa450edef68
2001-12-13 13:15:56 +00:00
2c70a18608 Give the request_rec some information about path_info allowance.
If some unnamed filter will consume the path_info, it may set up
  used_path_info to a non-zero value, and core.c will consume the
  request with path_info.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92442 13f79535-47bb-0310-9956-ffa450edef68
2001-12-13 02:40:34 +00:00
a9b9a36d86 AFAICT - these symbols are unused.
The right solution, once required, is to wrap the FRAMING requirement
  into the mmap logic so we can always ask for a n byte mmap, only to be
  given a n + (pg - (n % pg)) byte region without consumer hassles.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92385 13f79535-47bb-0310-9956-ffa450edef68
2001-12-07 22:19:38 +00:00
229c5302cd Provide an accessor function for the global_score portion of the scoreboard.
Submitted by:	Harrie Hazewinkel <harrie@covalent.net>
Reviewed by:	Aaron Bannert


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92377 13f79535-47bb-0310-9956-ffa450edef68
2001-12-07 19:08:50 +00:00
889ecbb03a Export ap_get_parent_scoreboard and ap_get_servers_scoreboard to be
usable on Win32 and friends.

Submitted by:	Harrie Hazewinkel <harrie@covalent.net>
Reviewed by:	Aaron Bannert


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92375 13f79535-47bb-0310-9956-ffa450edef68
2001-12-07 19:06:29 +00:00
f7a40513a7 Change a comment. This change was made to 2.0.29-dev. 2.0.28 had already
gone out the door when this change was made.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92297 13f79535-47bb-0310-9956-ffa450edef68
2001-12-03 15:57:02 +00:00
cf8cbe7e2d Added a version of ap_getline() that allocs a buffer from
the request's pool, rather than copying into a caller-supplied
buffer.  (This lets us eliminate one copy operation on the
request headers.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92290 13f79535-47bb-0310-9956-ffa450edef68
2001-12-02 23:13:32 +00:00
b7f26548e4 use our standard declaration macro for the AP_DEBUG flavors of
ap_strchr(), ap_strchr_c(), et al so that for an AP_DEBUG build
of Apache those functions will be listed in httpd.exp...  otherwise,
AIX DSO modules also compiled with AP_DEBUG won't be able to resolve
those symbols since httpd isn't exporting them


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92270 13f79535-47bb-0310-9956-ffa450edef68
2001-12-01 02:09:00 +00:00
bcb88ba28a carry over from 1.3: disable profiling in the parent process #ifdef GPROF
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92230 13f79535-47bb-0310-9956-ffa450edef68
2001-11-29 04:06:05 +00:00
6f9865ce14 welcome to .30
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92205 13f79535-47bb-0310-9956-ffa450edef68
2001-11-27 22:14:31 +00:00
021edfe900 about to tag 29
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92203 13f79535-47bb-0310-9956-ffa450edef68
2001-11-27 22:13:06 +00:00