1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-26 19:01:35 +03:00
Commit Graph

764 Commits

Author SHA1 Message Date
Aaron Bannert
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
Jeff Trawick
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
Brian Pane
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
Bill Stoddard
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
William A. Rowe Jr
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
Brian Pane
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
Brian Pane
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
Justin Erenkrantz
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
Justin Erenkrantz
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
Justin Erenkrantz
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
William A. Rowe Jr
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
Greg Stein
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
Ken Coar
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
William A. Rowe Jr
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
William A. Rowe Jr
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
Aaron Bannert
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
Aaron Bannert
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
Bradley Nicholes
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
Justin Erenkrantz
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
Justin Erenkrantz
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
Brian Pane
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
Brian Pane
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
Brian Havard
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
Jeff Trawick
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
Jeff Trawick
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
Jeff Trawick
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
William A. Rowe Jr
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
William A. Rowe Jr
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
Jeff Trawick
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
William A. Rowe Jr
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
William A. Rowe Jr
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
Aaron Bannert
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
Aaron Bannert
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
Bill Stoddard
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
Brian Pane
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
Jeff Trawick
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
Doug MacEachern
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
Ian Holsman
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
Ian Holsman
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
Ian Holsman
4aeb823a15 Change the magic #
as we have changed the conn_rec structure
and have change the open_log and post_config hook function
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92201 13f79535-47bb-0310-9956-ffa450edef68
2001-11-27 22:07:09 +00:00
Ian Holsman
c7c6e876a9 change open_logs hook to return a value, allowing you to flag a error
while opening logs

Obtained from: Doug MacEachern


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92149 13f79535-47bb-0310-9956-ffa450edef68
2001-11-24 00:08:30 +00:00
Ian Holsman
86b792b21c Modify post_config hook so that it can return a error,
causing the server not to start.
previous method was to call exit(1) which would not fail
gracefully

PR:
Obtained from:
Submitted by:
Reviewed by:	(Idea only Jeff Trawick)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92144 13f79535-47bb-0310-9956-ffa450edef68
2001-11-23 16:35:22 +00:00
Ryan Bloom
d70af2b3eb Fix the timeout logic that I broke last week. This adds a request
level filter that sets the timeout on the socket that is connected
to the client.

Thanks Greg Stein for seeing this bug.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92073 13f79535-47bb-0310-9956-ffa450edef68
2001-11-21 03:46:22 +00:00
Doug MacEachern
4b9c521468 add new input filter mode AP_MODE_INIT:
allows filters such as mod_ssl to initialize a client connection
(ie handshake) before reading request data from the client.
PR:
Obtained from:
Submitted by:   dougm
Reviewed by:	wrowe


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92042 13f79535-47bb-0310-9956-ffa450edef68
2001-11-19 22:36:20 +00:00
Cliff Woolley
bd193e57f3 fix spelling
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92027 13f79535-47bb-0310-9956-ffa450edef68
2001-11-18 06:30:55 +00:00
Cliff Woolley
89b050edb4 Don't know why these were missing... just an oversight, I'm guessing?
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92026 13f79535-47bb-0310-9956-ffa450edef68
2001-11-18 05:50:43 +00:00
Cliff Woolley
01c110e3e9 Fix spelling
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92025 13f79535-47bb-0310-9956-ffa450edef68
2001-11-18 05:35:47 +00:00
Ian Holsman
4f1a15140d change the signature of ap_custom_response() to use a
"const char *" instead of a "char *".


PR: 8791
Submitted by: Kurt Brown kurtb149@yahoo.com
Reviewed by:	Ian Holsman


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92024 13f79535-47bb-0310-9956-ffa450edef68
2001-11-18 02:57:12 +00:00
Jeff Trawick
502a0a8eb9 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.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92019 13f79535-47bb-0310-9956-ffa450edef68
2001-11-17 14:02:26 +00:00
Ryan Bloom
a4f00625aa Pull lingering close out of the pool cleanup phase. This was causing too
many bugs.  Instead, it is called where it used to be called.  I have
abstracted some of the logic out of the lingering close so that it gets
the socket from the connection using the core's conn_config vector.  This
is in anticipation of a change to use a hook for the lingering close,
which I hope to do soon.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91968 13f79535-47bb-0310-9956-ffa450edef68
2001-11-15 20:49:54 +00:00