/[Apache-SVN]/httpd/httpd/branches/2.2.x/server/request.c
ViewVC logotype

Log of /httpd/httpd/branches/2.2.x/server/request.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Revision:

Revision 733754 - (view) (annotate) - [select for diffs]
Modified Mon Jan 12 13:53:43 2009 UTC (10 months, 2 weeks ago) by jim
File length: 72749 byte(s)
Diff to previous 655540 (colored)
PR 45959

Revision 655540 - (view) (annotate) - [select for diffs]
Modified Mon May 12 16:05:03 2008 UTC (18 months, 2 weeks ago) by jim
File length: 70221 byte(s)
Diff to previous 559449 (colored)
Merge r579664 from trunk:

Reinstate location walk for subrequests
PR 41960 (Jose Kahan)

Submitted by: niq
Reviewed by: jim

Revision 559449 - (view) (annotate) - [select for diffs]
Modified Wed Jul 25 13:13:49 2007 UTC (2 years, 4 months ago) by niq
File length: 70338 byte(s)
Diff to previous 526912 (colored)
Backport trivial cleanups

Revision 526912 - (view) (annotate) - [select for diffs]
Modified Mon Apr 9 20:56:01 2007 UTC (2 years, 7 months ago) by trawick
File length: 70385 byte(s)
Diff to previous 421103 (colored)
merge from trunk:

core: Correct a regression since 2.0.x in the handling of AllowOverride
Options.

PR: 41829

Submitted by: Torsten Förtsch <torsten.foertsch gmx.net>
Reviewed by: niq, rpluem, trawick


Revision 421103 - (view) (annotate) - [select for diffs]
Modified Wed Jul 12 03:38:44 2006 UTC (3 years, 4 months ago) by fielding
File length: 70331 byte(s)
Diff to previous 396056 (colored)
update license header text

Revision 396056 - (view) (annotate) - [select for diffs]
Modified Sat Apr 22 01:53:06 2006 UTC (3 years, 7 months ago) by pquerna
File length: 70184 byte(s)
Diff to previous 395231 (colored)
Revert r395231 from the 2.2.x branch.  This gets us back to the old place with regard to the copyright statements.

Revision 395231 - (view) (annotate) - [select for diffs]
Modified Wed Apr 19 12:33:16 2006 UTC (3 years, 7 months ago) by colm
File length: 70184 byte(s)
Diff to previous 332309 (colored)
Update the last year of copyright for the 2.2.x branch

Revision 332309 - (view) (annotate) - [select for diffs]
Modified Thu Nov 10 15:20:05 2005 UTC (4 years ago) by jim
File length: 70184 byte(s)
Diff to previous 332307 (colored)
No functional change: remove trailing whitespace. This also means
that "blank" lines, which had consisted of just spaces
and/or tabs are now truly blank lines

Revision 332307 - (view) (annotate) - [select for diffs]
Modified Thu Nov 10 15:15:41 2005 UTC (4 years ago) by jim
File length: 70208 byte(s)
Diff to previous 306782 (colored)
No functional change: detab all indenting to be consistent
with our formatting standards.

Revision 306782 - (view) (annotate) - [select for diffs]
Modified Thu Oct 6 15:53:58 2005 UTC (4 years, 1 month ago) by wrowe
File length: 70173 byte(s)
Diff to previous 293365 (colored)
Backport 295141

  Pay close attention to core_create_req() ... and note
  that not one other member of the r->vars is initialized
  herein.  Move this initialization elsewhere.

  (If this is the 'default' - it really aught to be the
  zero value, for that matter).



Revision 293365 - (view) (annotate) - [select for diffs]
Modified Mon Oct 3 15:15:36 2005 UTC (4 years, 1 month ago) by colm
File length: 69975 byte(s)
Diff to previous 292540 (colored)
Merge r293364 from trunk.

Revision 292540 - (view) (annotate) - [select for diffs]
Modified Thu Sep 29 20:44:53 2005 UTC (4 years, 1 month ago) by colm
File length: 69896 byte(s)
Diff to previous 292423 (colored)
Backport the Doxygen changes to the 2.2.x branch. No functional changes,
however backporting these doxygen fixes makes it significantly easier to diff
trunk and the 2.2.x branch, to sort out what's what. And we might as well
release with nicer doxygen markup.

Submitted by: Neale Ranns <neale ranns.org>
Reviewed by:  Ian Holsman

Revision 292423 - (view) (annotate) - [select for diffs]
Modified Thu Sep 29 12:20:54 2005 UTC (4 years, 1 month ago) by colm
File length: 69877 byte(s)
Diff to previous 291125 (colored)
Merge r291588, r291672 and r291914 from trunk; make mod_dir and mod_cache
play nice together. 

Revision 291125 - (view) (annotate) - [select for diffs]
Modified Fri Sep 23 14:25:19 2005 UTC (4 years, 2 months ago) by jorton
File length: 69466 byte(s)
Diff to previous 290727 (colored)
Merge r291120 from trunk:

* server/request.c (core_opts_merge): When AllowOverride is specified
for the directory, ignore the inherited override_opts field.

PR: 35330
Submitted by: kabe <kabe sra-tohoku.co.jp>
Reviewed by: jorton

Revision 290727 - (view) (annotate) - [select for diffs]
Modified Wed Sep 21 15:37:21 2005 UTC (4 years, 2 months ago) by slive
File length: 69521 byte(s)
Diff to previous 234103 (colored)
Merge r280018 from trunk:

Any failure in apr_stat on a symlink currently gives
"Symbolic link not allowed", which results in much head-scratching
if the actual problem is a broken link of some sort.  The real
fix would be to propogate the correct apr_stat error into the
error log, but that would require more refactoring than I'm
prepared to do.  This change simply expands the error message
to include both possibilities.  It improves the situation for
PR28515 but does not solve it.


Revision 234103 - (view) (annotate) - [select for diffs]
Modified Sat Aug 20 18:21:45 2005 UTC (4 years, 3 months ago) by pquerna
File length: 69454 byte(s)
Diff to previous 153384 (colored)
Recreate 2.2.x branch from trunk.

Revision 153384 - (view) (annotate) - [select for diffs]
Modified Fri Feb 11 12:00:41 2005 UTC (4 years, 9 months ago) by jorton
Original Path: httpd/httpd/trunk/server/request.c
File length: 69454 byte(s)
Diff to previous 151408 (colored)
Move the POSIX reg* implementations into the ap_* namespace;
internalise the ap_reg*<->PCRE wrapper:

* configure.in: Add srclib/pcre to the include path.

* include/ap_regex.h: Renamed from include/pcreposix.h.  Prefix all
constants with AP_; prefix all functions and types with ap_.  Define
AP_DECLARE to nothing if necessary.  Remove regcomp error codes.

* include/httpd.h: Include ap_regex.h not pcreposix.h.
(ap_pregcomp, ap_regexec, ap_regfree): s/regex_t/ap_regex_t/.
(ap_regexec, ap_regerror): Prototypes moved to ap_regex.h.

* server/util.c (regex_cleanup, ap_pregcomp, ap_pregsub, ap_pregfree):
Adjust for ap_ prefixed types.  (ap_regexec, ap_regerror): Removed.

* server/Makefile.in: Build util_pcre.c.

* server/util_pcre.c: Copied from srclib/pcre/pcreposix.c; remove use
of PCRE-internals to do error mapping; rename types to add AP_/ap_
prefixes as above.  Use APR includes.  (ap_regerror): Use apr_snprintf.

* srclib/pcre/Makefile.in: Don't build pcreposix.c into libpcre.la.

* modules/*: Update to use new type and constant names.

PR: 27750 (part one)
Submitted by: Andres Salomon <dilinger voxel.net>, Joe Orton

Revision 151408 - (view) (annotate) - [select for diffs]
Modified Fri Feb 4 20:28:49 2005 UTC (4 years, 9 months ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 69451 byte(s)
Diff to previous 106103 (colored)
Update copyright year to 2005 and standardize on current copyright owner line.

Revision 106103 - (view) (annotate) - [select for diffs]
Modified Sun Nov 21 18:50:36 2004 UTC (5 years ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 69415 byte(s)
Diff to previous 105572 (colored)
general property cleanup

Revision 105572 - (view) (annotate) - [select for diffs]
Modified Sat Oct 23 22:39:53 2004 UTC (5 years, 1 month ago) by fielding
Original Path: httpd/httpd/trunk/server/request.c
File length: 69415 byte(s)
Diff to previous 105545 (colored)
veto and revert win64 patch: 64bit changes must percolate from the
bottom (APR/system) up -- we can't give the client a 64bit API and
then cast it to 32bits internally without introducing security holes
on other platforms.

Revision 105545 - (view) (annotate) - [select for diffs]
Modified Fri Oct 22 15:22:05 2004 UTC (5 years, 1 month ago) by ake
Original Path: httpd/httpd/trunk/server/request.c
File length: 69434 byte(s)
Diff to previous 105408 (colored)
WIN64: API changes to clean up Windows 64bit compile warnings

Revision 105408 - (view) (annotate) - [select for diffs]
Modified Mon Oct 11 19:27:29 2004 UTC (5 years, 1 month ago) by erikabele
Original Path: httpd/httpd/trunk/server/request.c
File length: 69415 byte(s)
Diff to previous 104758 (colored)
Minor comment fixes, no code changes:
  - 'sub request' -> 'subrequest'
  - @retrn -> @return
  - ...

PR:
Obtained from:
Submitted by:
Reviewed by:

Revision 104758 - (view) (annotate) - [select for diffs]
Modified Fri Aug 20 20:58:49 2004 UTC (5 years, 3 months ago) by stas
Original Path: httpd/httpd/trunk/server/request.c
File length: 69416 byte(s)
Diff to previous 104283 (colored)
use more intuitive variable names
ap_sub_req_*_uri  to use new_uri
ap_sub_req_*_file to use new_file

PR:
Obtained from:
Submitted by:
Reviewed by:

Revision 104283 - (view) (annotate) - [select for diffs]
Modified Wed Jul 14 06:36:42 2004 UTC (5 years, 4 months ago) by pquerna
Original Path: httpd/httpd/trunk/server/request.c
File length: 69422 byte(s)
Diff to previous 102619 (colored)
Added 'AllowOverride Options=Indexes,MultiViews' to give an admin better
control over what options can be used in .htaccess files.

PR: 29310
Submitted by: Tom Alsberg <alsbergt-apache cs.huji.ac.il>

Revision 102619 - (view) (annotate) - [select for diffs]
Modified Mon Feb 9 20:40:53 2004 UTC (5 years, 9 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 69252 byte(s)
Diff to previous 102589 (colored)
fix name of The Apache Software Foundation

Revision 102589 - (view) (annotate) - [select for diffs]
Modified Sun Feb 8 13:58:22 2004 UTC (5 years, 9 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 69248 byte(s)
Diff to previous 102525 (colored)
fix copyright dates according to the first check in

Revision 102525 - (view) (annotate) - [select for diffs]
Modified Fri Feb 6 22:58:42 2004 UTC (5 years, 9 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 69248 byte(s)
Diff to previous 102135 (colored)
apply Apache License, Version 2.0

Revision 102135 - (view) (annotate) - [select for diffs]
Modified Thu Jan 1 13:26:26 2004 UTC (5 years, 10 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 71467 byte(s)
Diff to previous 101822 (colored)
update license to 2004.

Revision 101822 - (view) (annotate) - [select for diffs]
Modified Thu Nov 20 21:31:59 2003 UTC (6 years ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 71467 byte(s)
Diff to previous 101659 (colored)
spell check

Revision 101659 - (view) (annotate) - [select for diffs]
Modified Sat Nov 1 22:29:42 2003 UTC (6 years ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 71467 byte(s)
Diff to previous 101441 (colored)
Let mod_autoindex show filenames containing special chars like %.

PR: 13598

Revision 101441 - (view) (annotate) - [select for diffs]
Modified Mon Oct 13 23:43:00 2003 UTC (6 years, 1 month ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 71254 byte(s)
Diff to previous 101154 (colored)
tag the pools created for requests and subrequests

Revision 101154 - (view) (annotate) - [select for diffs]
Modified Wed Sep 3 19:27:12 2003 UTC (6 years, 2 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 71217 byte(s)
Diff to previous 100095 (colored)
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

Revision 100095 - (view) (annotate) - [select for diffs]
Modified Thu May 29 23:04:32 2003 UTC (6 years, 6 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 70944 byte(s)
Diff to previous 99911 (colored)
Rework of the recursion stopper - collapse recursion counters into one function

Reviewed by: Justin Erenkrantz

Revision 99911 - (view) (annotate) - [select for diffs]
Modified Mon May 19 01:19:55 2003 UTC (6 years, 6 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 70935 byte(s)
Diff to previous 98573 (colored)
Prevent the server from crashing when entering infinite loops. The
new LimitInternalRecursion directive configures limits of subsequent
internal redirects and nested subrequests, after which the request
will be aborted.
[William Rowe, Jeff Trawick, Andr� Malo]

PR: 19753 (and probably others)

Revision 98573 - (view) (annotate) - [select for diffs]
Modified Mon Feb 3 17:53:28 2003 UTC (6 years, 9 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 70226 byte(s)
Diff to previous 98516 (colored)
finished that boring job:
update license to 2003.

Happy New Year! ;-))

Revision 98516 - (view) (annotate) - [select for diffs]
Modified Tue Jan 28 15:57:38 2003 UTC (6 years, 10 months ago) by nd
Original Path: httpd/httpd/trunk/server/request.c
File length: 70226 byte(s)
Diff to previous 98479 (colored)
Fix "Satisfy Any" logic. The access_checker has nothing to do with
auth_type.

Related PR: 9076

Revision 98479 - (view) (annotate) - [select for diffs]
Modified Thu Jan 23 21:34:13 2003 UTC (6 years, 10 months ago) by coar
Original Path: httpd/httpd/trunk/server/request.c
File length: 70428 byte(s)
Diff to previous 97891 (colored)
	here we go.  add a directive that will keep %2f from being
	decoded into '/', allowing the *_walk to do their magic and
	return 404 if it's in the path, and allowing it in the path-info.

Revision 97891 - (view) (annotate) - [select for diffs]
Modified Thu Dec 12 07:05:54 2002 UTC (6 years, 11 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 70098 byte(s)
Diff to previous 97385 (colored)
  Make the code simpler to follow, and perhaps clear up the follow-symlink
  bug reports we have seen on bugzilla.  e.g. 14206 etc.

Revision 97385 - (view) (annotate) - [select for diffs]
Modified Sun Nov 3 22:17:32 2002 UTC (7 years ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 70623 byte(s)
Diff to previous 97380 (colored)
core_opts_merge() needs to be static

Revision 97380 - (view) (annotate) - [select for diffs]
Modified Fri Nov 1 20:49:13 2002 UTC (7 years ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 70616 byte(s)
Diff to previous 97375 (colored)
  Mr. Trawick was dead on, and this revealed a much bigger bug.
  Factor out the opts/override merging (since we do it three times)
  and eliminate all the nasty goto's.  This bug likely caused all
  sorts of dir_walk configuration issues including htaccess issues.
  Also add a few more docs where things aren't so obvious.

PR: 14147

Revision 97375 - (view) (annotate) - [select for diffs]
Modified Fri Nov 1 12:58:30 2002 UTC (7 years ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 71267 byte(s)
Diff to previous 97366 (colored)
no such thing as AP_ASSERT()

there is ap_assert() and AP_DEBUG_ASSERT()

Revision 97366 - (view) (annotate) - [select for diffs]
Modified Fri Nov 1 03:27:20 2002 UTC (7 years ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 71261 byte(s)
Diff to previous 97303 (colored)
  Fix a trailing slash/last filename truncation bug observed on Linux,
  which affected DAV MOVE operations and even general file access.
  PR 14147, 10687, 10236 [Dan Good <debug@gooddan.com>]

  I'm accepting Jeff Trawick's suggestion of twisting the test into an
  assert, since it seems very unlikely (after correctly resetting the flag)
  that this will fault.

Reviewed by:  Jeff Trawick, Will Rowe

Revision 97303 - (view) (annotate) - [select for diffs]
Modified Fri Oct 25 16:38:11 2002 UTC (7 years, 1 month ago) by coar
Original Path: httpd/httpd/trunk/server/request.c
File length: 71166 byte(s)
Diff to previous 97302 (colored)
i hate it when tha happens..

Revision 97302 - (view) (annotate) - [select for diffs]
Modified Fri Oct 25 16:27:38 2002 UTC (7 years, 1 month ago) by coar
Original Path: httpd/httpd/trunk/server/request.c
File length: 71164 byte(s)
Diff to previous 96642 (colored)
more info is better than less..

Revision 96642 - (view) (annotate) - [select for diffs]
Modified Thu Sep 5 06:59:14 2002 UTC (7 years, 2 months ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 70862 byte(s)
Diff to previous 95149 (colored)
Morph DONE result from a sub-request handler to OK as DONE is only relevant
when we are the main request.

This fixes a problem with mod_include printing out an error message on DAV
sub-requests because mod_dav will return DONE instead of OK.  This would
result in the correct output merged in with an error string.

Revision 95149 - (view) (annotate) - [select for diffs]
Modified Fri May 17 11:11:39 2002 UTC (7 years, 6 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 70797 byte(s)
Diff to previous 95044 (colored)
stop using APLOG_NOERRNO in calls to ap_log_?error()

Revision 95044 - (view) (annotate) - [select for diffs]
Modified Sun May 12 03:45:47 2002 UTC (7 years, 6 months ago) by brianp
Original Path: httpd/httpd/trunk/server/request.c
File length: 70895 byte(s)
Diff to previous 94778 (colored)
Optimization: skip cache setup in location_walk() if the vhost
config contains no <Location> blocks

Revision 94778 - (view) (annotate) - [select for diffs]
Modified Wed Apr 24 04:20:10 2002 UTC (7 years, 7 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 70895 byte(s)
Diff to previous 94777 (colored)
  A bug affecting any platform that had pre-lstat'ed the file or directory
  in question.  We neglected to clear the FINFO_LINK bit that told us this
  was lstat()ed, but also causes stat() to follow an lstat() approach.
  This is part 2 of 2 to correct the NTFS Junction (symlink) bug.

  Bugz report 8014, identified by Sam Morris <sam@netcity.co.uk>

Revision 94777 - (view) (annotate) - [select for diffs]
Modified Wed Apr 24 03:52:59 2002 UTC (7 years, 7 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 70838 byte(s)
Diff to previous 94757 (colored)
  Formatting irk grinding at me while stepping code

Revision 94757 - (view) (annotate) - [select for diffs]
Modified Mon Apr 22 17:33:28 2002 UTC (7 years, 7 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 70839 byte(s)
Diff to previous 94755 (colored)
  Fix this optimization.  We will skip along so long as we aren't at the
  right number of components, -or- we mismatch on the current component.

Revision 94755 - (view) (annotate) - [select for diffs]
Modified Mon Apr 22 16:43:46 2002 UTC (7 years, 7 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 70833 byte(s)
Diff to previous 94240 (colored)
  Small optimization, if we are behind (at the 5th segment, for example),
  catch up the segment-count-sorted directory list without string compares.
  Mostly affects win32 which jumps from seg 0 (root) to 4 for UNC path names.

Revision 94240 - (view) (annotate) - [select for diffs]
Modified Wed Mar 27 22:42:16 2002 UTC (7 years, 8 months ago) by stoddard
Original Path: httpd/httpd/trunk/server/request.c
File length: 70777 byte(s)
Diff to previous 93952 (colored)
Add a new parameter to the quick_handler hook to instruct
quick handlers to optionally do a lookup rather than actually
serve content. This is the first of several changes required fix
several problems with how quick handlers work with subrequests.

Revision 93952 - (view) (annotate) - [select for diffs]
Modified Fri Mar 15 13:35:42 2002 UTC (7 years, 8 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 71534 byte(s)
Diff to previous 93918 (colored)
Allow URIs specifying CGI scripts to include '/' at the end
(e.g., /cgi-bin/printenv/) on AIX and Solaris (and other OSs
which ignore '/' at the end of the names of non-directories).

PR:    10138

Revision 93918 - (view) (annotate) - [select for diffs]
Modified Wed Mar 13 20:48:07 2002 UTC (7 years, 8 months ago) by fielding
Original Path: httpd/httpd/trunk/server/request.c
File length: 70973 byte(s)
Diff to previous 93915 (colored)
Update our copyright for this year.

Revision 93915 - (view) (annotate) - [select for diffs]
Modified Wed Mar 13 19:41:56 2002 UTC (7 years, 8 months ago) by stoddard
Original Path: httpd/httpd/trunk/server/request.c
File length: 70973 byte(s)
Diff to previous 93852 (colored)
Move the quick_handler comment to the new quick handler location.  Do not
call quick handler on a dirent subrequest. This fixes a nasty problem in
mod_cache where it was serving up content on a dirent subrequest.

Revision 93852 - (view) (annotate) - [select for diffs]
Modified Tue Mar 12 09:02:19 2002 UTC (7 years, 8 months ago) by striker
Original Path: httpd/httpd/trunk/server/request.c
File length: 69971 byte(s)
Diff to previous 93745 (colored)
Style Police comming through...

Revision 93745 - (view) (annotate) - [select for diffs]
Modified Thu Mar 7 02:09:30 2002 UTC (7 years, 8 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 70009 byte(s)
Diff to previous 93709 (colored)
Remove the prev pointer from the filter chain.  This removes
the complexity of trying to set the filter chain correctly, with the
side-effect of forcing us to walk the entire chain whenever we add
a filter.  Since the filter chains are small, the decrease in
complexity is worth it.
Reviewed by:	Allan Edwards

Revision 93709 - (view) (annotate) - [select for diffs]
Modified Tue Mar 5 05:24:21 2002 UTC (7 years, 8 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 70015 byte(s)
Diff to previous 93686 (colored)
Only insert net_filter once per request.  Initialize the output
protocol filters.

Revision 93686 - (view) (annotate) - [select for diffs]
Modified Sun Mar 3 22:04:03 2002 UTC (7 years, 8 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 69954 byte(s)
Diff to previous 93682 (colored)
This fixes most of the header bug that was committed last night.  The server
is seg faulting on pipelined requests currently, but I want to get people
back to a running server.

Revision 93682 - (view) (annotate) - [select for diffs]
Modified Sun Mar 3 02:15:52 2002 UTC (7 years, 8 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 69711 byte(s)
Diff to previous 93425 (colored)
Fix the mod_dir/mod_negotiation bug, where redirects and sub requests
were not getting the correct filters.  This is done by creating a location
in the request rec that holds protocol level filters.  Protocol level
filters survive for one request, from the time the request is received
from the user to the time the response is sent.  r->output_filters now
stores the request level filters, which are only valid for the lifetime
of one request_rec.

This patch works, but it is not complete.  The second half of the problem
is that add_any_filter doesn't check where it puts the filters that it
adds, so it is possible for filters to be put on this wrong list, and
for filters to be lost completely during request processing.  That half
of the fix will be coming in the next day or so.

Submitted by:	Will Rowe, Justin Erenkrantz, Ryan Bloom

Revision 93425 - (view) (annotate) - [select for diffs]
Modified Fri Feb 15 07:43:20 2002 UTC (7 years, 9 months ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 69184 byte(s)
Diff to previous 93328 (colored)
Fix ap_directory_walk() per-dir merge bug seen when no <Directory /> is
present.

showstoppers--

Kudos to Jeff for finding it.
Kudos to BrianP for leading us in the right direction.
Kudos to OtherBill for pointing out the right way to fix this.

Revision 93328 - (view) (annotate) - [select for diffs]
Modified Thu Feb 7 06:29:57 2002 UTC (7 years, 9 months ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 69101 byte(s)
Diff to previous 93045 (colored)
Fix resolve_symlink to save the original symlink name if known.

We would previously receive APR_INCOMPLETE on symlinks if wanted has
FINFO_NAME set because it isn't supported via apr_stat().  Furthermore, we
don't care what the real name is anyway (even if it apr_stat returned
.name) - we want to call it by the name the symlink says it is.

Revision 93045 - (view) (annotate) - [select for diffs]
Modified Sun Jan 27 07:44:07 2002 UTC (7 years, 10 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 68691 byte(s)
Diff to previous 93041 (colored)
  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.

Revision 93041 - (view) (annotate) - [select for diffs]
Modified Sun Jan 27 02:38:45 2002 UTC (7 years, 10 months ago) by brianp
Original Path: httpd/httpd/trunk/server/request.c
File length: 67990 byte(s)
Diff to previous 93035 (colored)
optimization: switched to ap_add_output_filter_handle() for installation of
subreq filter

Revision 93035 - (view) (annotate) - [select for diffs]
Modified Sat Jan 26 20:16:01 2002 UTC (7 years, 10 months ago) by gregames
Original Path: httpd/httpd/trunk/server/request.c
File length: 67936 byte(s)
Diff to previous 92956 (colored)
ap_sub_req_lookup_dirent: fix mod_negotiation loop with near infinite
subrequests

this function has been creating bogus subrequest URIs when there is
path_info for a long time.  They didn't matter until fixup_dir started
using them for URI subrequests, which led to a loop with ever growing
bogus internal URIs and filenames.

Revision 92956 - (view) (annotate) - [select for diffs]
Modified Mon Jan 21 01:43:30 2002 UTC (7 years, 10 months ago) by ianh
Original Path: httpd/httpd/trunk/server/request.c
File length: 67519 byte(s)
Diff to previous 92867 (colored)
These changes are to allow caching of subrequests via a quick_handler.

* Change SUBREQ_CORE so that it is a HTTP_HEADER (20) filter instead of a content filter (10)
  this allows subrequests to add content filters properly

* Change subreq handling of 'handle-include' so that it splits/passes the brigade before the subreq
  is created. (This allows quick_handler to push content back from this phase)

Revision 92867 - (view) (annotate) - [select for diffs]
Modified Wed Jan 16 19:14:44 2002 UTC (7 years, 10 months ago) by ianh
Original Path: httpd/httpd/trunk/server/request.c
File length: 67593 byte(s)
Diff to previous 92865 (colored)
code police again

Revision 92865 - (view) (annotate) - [select for diffs]
Modified Wed Jan 16 18:12:52 2002 UTC (7 years, 10 months ago) by ianh
Original Path: httpd/httpd/trunk/server/request.c
File length: 67594 byte(s)
Diff to previous 92862 (colored)
sigh.
code style police

Revision 92862 - (view) (annotate) - [select for diffs]
Modified Wed Jan 16 04:29:10 2002 UTC (7 years, 10 months ago) by ianh
Original Path: httpd/httpd/trunk/server/request.c
File length: 67596 byte(s)
Diff to previous 92707 (colored)
quick handler now runs on subrequests as well
PR:
Obtained from:
Submitted by:
Reviewed by:

Revision 92707 - (view) (annotate) - [select for diffs]
Modified Wed Jan 2 21:58:43 2002 UTC (7 years, 10 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 67300 byte(s)
Diff to previous 92706 (colored)
  Merge a singular path for dir_walk to parse, if we have an r->filename
  which is an APR_DIR, and path_info contents.  Also, al la Mr. Pane,
  optimize our canonical_filename by simply noting the length of the
  identity match, and refresh canonical_filename when we are finished.

Revision 92706 - (view) (annotate) - [select for diffs]
Modified Wed Jan 2 21:34:50 2002 UTC (7 years, 10 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 64258 byte(s)
Diff to previous 92697 (colored)
  Eliminate a duplicate absolute path test, and NEVER serve a request
  for an APR_DIR file from the cache when we have path_info, it is a
  contradition (APR_DIR always forces dir_walk to gather the next segment
  from path_info, even if it is APR_NOFILE, until we have no path_info.)

  So we can't use a predetermined filename/path_info combo, ever, if the
  filename resolves to an APR_DIR.

Revision 92697 - (view) (annotate) - [select for diffs]
Modified Tue Jan 1 20:36:18 2002 UTC (7 years, 10 months ago) by brianp
Original Path: httpd/httpd/trunk/server/request.c
File length: 64261 byte(s)
Diff to previous 92684 (colored)
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

Revision 92684 - (view) (annotate) - [select for diffs]
Modified Mon Dec 31 08:18:32 2001 UTC (7 years, 10 months ago) by brianp
Original Path: httpd/httpd/trunk/server/request.c
File length: 64546 byte(s)
Diff to previous 92471 (colored)
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().

Revision 92471 - (view) (annotate) - [select for diffs]
Modified Fri Dec 14 03:30:23 2001 UTC (7 years, 11 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 64485 byte(s)
Diff to previous 92440 (colored)
  Move the insert_filter hook from the prepare request phase to the
  invoke handler phase, since it can't fail, and contributes nothing
  to the request 'character', but everything to it's invocation.

Revision 92440 - (view) (annotate) - [select for diffs]
Modified Thu Dec 13 02:26:18 2001 UTC (7 years, 11 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 64964 byte(s)
Diff to previous 92402 (colored)
  . unwind MORE redundant code [wasn't I just here six months ago???]

  . fix a redundant return [how no compilers caught a code-not-reachable
    is beyond me :]

Revision 92402 - (view) (annotate) - [select for diffs]
Modified Sun Dec 9 18:08:08 2001 UTC (7 years, 11 months ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 65447 byte(s)
Diff to previous 92401 (colored)
Style reformat.  Tabs->spaces, etc, etc, etc.

Revision 92401 - (view) (annotate) - [select for diffs]
Modified Sun Dec 9 17:48:52 2001 UTC (7 years, 11 months ago) by ben
Original Path: httpd/httpd/trunk/server/request.c
File length: 65032 byte(s)
Diff to previous 91822 (colored)
Reduce magic levels.

Revision 91822 - (view) (annotate) - [select for diffs]
Modified Fri Nov 9 16:54:00 2001 UTC (8 years ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 64997 byte(s)
Diff to previous 91816 (colored)
  Stat, don't lstat the final target.  This means we may double-stat the
  final target file if check for symlinks reveals it's an APR_LNK, but this
  is preferable to the convoluted code required to 'reuse' the original stat.

Revision 91816 - (view) (annotate) - [select for diffs]
Modified Fri Nov 9 08:08:42 2001 UTC (8 years ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 65474 byte(s)
Diff to previous 91746 (colored)
  Reintroduce the 'one stat dir_walk', with singificantly more sensible
  behavior than the old path_info logic.

  If the stat() of r->filename succeeds ignore every segment that requires
  no symlink check (and on Win32/OS2/Netware the name matches the canonical
  name, assuring us that the case/aliases match the true name.)

  This optimization can be improved by establishing a second cache of the
  actual partial filenames that _are_ tested for symlinks (or canonical
  filename case), and then skiping such tests when the conditions match on
  successive passes for subrequests or redirects.

Revision 91746 - (view) (annotate) - [select for diffs]
Modified Sun Nov 4 21:46:36 2001 UTC (8 years ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 62837 byte(s)
Diff to previous 91721 (colored)
This patch optimizes away some strlen and strcat calls in
ap_directory_walk.  The strlen calls, in particular, had
ranked as a top bottleneck in the usr-space code in recent
performance profiling.

Submitted by:	Brian Pane <bpane@pacbell.net>
Reviewed by:	Justin Erenkrantz

Revision 91721 - (view) (annotate) - [select for diffs]
Modified Thu Nov 1 20:14:16 2001 UTC (8 years ago) by coar
Original Path: httpd/httpd/trunk/server/request.c
File length: 62271 byte(s)
Diff to previous 91719 (colored)
More style-stuff.  A lot of this doesn't qualify as 'readable' even so.. :-(

Revision 91719 - (view) (annotate) - [select for diffs]
Modified Thu Nov 1 16:06:21 2001 UTC (8 years ago) by coar
Original Path: httpd/httpd/trunk/server/request.c
File length: 61779 byte(s)
Diff to previous 91681 (colored)
Some style-guide fixes (nothing functional)

Revision 91681 - (view) (annotate) - [select for diffs]
Modified Mon Oct 29 15:19:03 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 61215 byte(s)
Diff to previous 91607 (colored)
    Use the _setn flavor which will avoid strdup'ing these strings, and
    skip the cleanups we don't need.

Submitted by: Brian Pane <bpane@pacbell.net>

Revision 91607 - (view) (annotate) - [select for diffs]
Modified Sat Oct 20 18:27:15 2001 UTC (8 years, 1 month ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 61262 byte(s)
Diff to previous 91525 (colored)
Oh, don't you love buffer overflows?
We need to allocate storage space for the terminating NULL AND the extra /
we may tack on to the string at some point.

How in the hell the stars were aligned for this to corrupt newv via the
strcat at line 580 is unknown.

Resolves segfault seen on daedalus.

Revision 91525 - (view) (annotate) - [select for diffs]
Modified Wed Oct 17 15:12:13 2001 UTC (8 years, 1 month ago) by gregames
Original Path: httpd/httpd/trunk/server/request.c
File length: 61193 byte(s)
Diff to previous 91482 (colored)
recognize filename subrequests without requiring a null URI.  This fixes
a problem with infinite recursion of dirent subrequests.

Submitted by:  Bill Rowe

Revision 91482 - (view) (annotate) - [select for diffs]
Modified Tue Oct 16 02:23:42 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 61209 byte(s)
Diff to previous 91481 (colored)
  Fix the little bits o' breakage I introduced with the last two
  'theoretical' corrections.

Revision 91481 - (view) (annotate) - [select for diffs]
Modified Tue Oct 16 02:19:42 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 61148 byte(s)
Diff to previous 91480 (colored)
  directory_walk trounced existing path_info declarations.  I suspect _this_
  was Greg Ames bug...

Revision 91480 - (view) (annotate) - [select for diffs]
Modified Tue Oct 16 02:15:45 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 60935 byte(s)
Diff to previous 91479 (colored)
  Streamline this function, and append the trailing slash for any directories
  that are resolved.  Needs to be more tightly coupled to the dir_walk
  optimized cache.

Revision 91479 - (view) (annotate) - [select for diffs]
Modified Tue Oct 16 01:57:45 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 60048 byte(s)
Diff to previous 91380 (colored)
  This will probably fix recent breakage to mod_negotation and httpd.test,
  as well as the /manual/ returning docroot/index.  Need to look for another
  solution.  I'm suspecting path_info is possibly broken.

  Reverts 1.68, as suggested by Brian Havard.

Revision 91380 - (view) (annotate) - [select for diffs]
Modified Tue Oct 9 03:15:05 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 59885 byte(s)
Diff to previous 91378 (colored)
  Always helps to add the member

Revision 91378 - (view) (annotate) - [select for diffs]
Modified Tue Oct 9 02:41:47 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 59819 byte(s)
Diff to previous 91375 (colored)
  Speed it up.  While this optimization wasn't obvious for the two-pass
  location_walk, it is significant for all subreq/redirects reusing the
  cached walk values.

Revision 91375 - (view) (annotate) - [select for diffs]
Modified Tue Oct 9 01:33:48 2001 UTC (8 years, 1 month ago) by gregames
Original Path: httpd/httpd/trunk/server/request.c
File length: 59204 byte(s)
Diff to previous 91371 (colored)
prevent near infinite subrequest recursion with mod_negotiation enabled.
This can happen if there is a partial match between a bad URI and a
file with a variant extention.

ap_sub_req_lookup_dirent has apparently been generating bogus subrequest
URIs for ages, but they used to be ignored.  Once we started calling
ap_process_request_internal for all subrequests, they started causing
problems.  Make it explicit that rnew->uri is to be ignored for this type
of subrequest.

Revision 91371 - (view) (annotate) - [select for diffs]
Modified Mon Oct 8 22:07:32 2001 UTC (8 years, 1 month ago) by gregames
Original Path: httpd/httpd/trunk/server/request.c
File length: 59367 byte(s)
Diff to previous 91368 (colored)
get symlinks working again

Revision 91368 - (view) (annotate) - [select for diffs]
Modified Mon Oct 8 21:13:51 2001 UTC (8 years, 1 month ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 59293 byte(s)
Diff to previous 91359 (colored)
at least *this* cast keeps gcc happy (and should keep
everything else happy as well)

Revision 91359 - (view) (annotate) - [select for diffs]
Modified Mon Oct 8 17:38:52 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 59249 byte(s)
Diff to previous 91358 (colored)
  Revamped ap_directory_walk logic, without a path_info helper is now
  activated.  It may be bumpy for a few days, and we have more optimizations
  to put in place, but it's time to get this in the developer's test code.

Revision 91358 - (view) (annotate) - [select for diffs]
Modified Mon Oct 8 17:35:41 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 75177 byte(s)
Diff to previous 91344 (colored)
  This is nothing but const bogosity.  We have our very own manipulation,
  we are allowed to touch the char *'s, even if we have a const contract.

Revision 91344 - (view) (annotate) - [select for diffs]
Modified Sat Oct 6 22:47:20 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 75161 byte(s)
Diff to previous 91342 (colored)
  Hmmm... continue's not so good an idea here :)

Revision 91342 - (view) (annotate) - [select for diffs]
Modified Sat Oct 6 22:16:11 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 75056 byte(s)
Diff to previous 91340 (colored)
  Aaargh!  Unwinding part of my patch before I committed the prior version,
  I ended up blasting these (intentional) changes as well :(

  This finishes up the changes for the new, replacement ap_directory_walk
  for testing.  This code isn't active yet.

Revision 91340 - (view) (annotate) - [select for diffs]
Modified Sat Oct 6 21:52:29 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 67001 byte(s)
Diff to previous 91255 (colored)
  A major overhaul to the -replacement- ap_directory_walk logic.  This still
  doesn't activate that code, I will do so probably by Monday, after more
  thorough testing.

  Introduces the ap_directory_walk::cache so we can stop wasting tons of
  effort in mod_autoindex and other subreq/redirect requests.

  This isn't thoroughly tested, I've only stepped through a half dozen
  common cases.  If you want to play, define REPLACE_PATH_INFO_METHOD.

Revision 91255 - (view) (annotate) - [select for diffs]
Modified Wed Oct 3 14:55:24 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 65910 byte(s)
Diff to previous 91254 (colored)
  One more note on the last commit - the 'cannot serve an absolute path'
  bug was identified by, and debugged with hints and examples provided by
  Ryan Morgan <rmorgan@covalent.net> --- his example module demonstrating
  the problem was invaluable :)

Revision 91254 - (view) (annotate) - [select for diffs]
Modified Wed Oct 3 13:24:28 2001 UTC (8 years, 1 month ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 65910 byte(s)
Diff to previous 91225 (colored)
  Correct file lookups when we are given a file within the same directory
  as the parent request.  Also pulls a bunch of notes and code that was
  set aside, we don't need this with the other optimizations introduced.

Revision 91225 - (view) (annotate) - [select for diffs]
Modified Mon Oct 1 21:01:14 2001 UTC (8 years, 1 month ago) by gregames
Original Path: httpd/httpd/trunk/server/request.c
File length: 70106 byte(s)
Diff to previous 91187 (colored)
ap_sub_req_output_filter:  don't pass along a brigade if it becomes empty
after deleting the EOS bucket.

This prevents a seg fault in mod_include when the connection dies.  There
doesn't seem to be much point in passing empty brigades in general.

Revision 91187 - (view) (annotate) - [select for diffs]
Modified Sat Sep 29 06:54:08 2001 UTC (8 years, 2 months ago) by jerenkrantz
Original Path: httpd/httpd/trunk/server/request.c
File length: 70017 byte(s)
Diff to previous 91186 (colored)
Fix for httpd-test modules/include test #17.

If we are *already* a faux URI (i.e. relative file sub req) and we then
make a subrequest from that faux URI to a file in the same directory,
we'd try to build a URI out of the fake URI which leads to the wrong
thing happening somewhere down the line.  So, let's just give this
special case a fake URI as well.

OtherBill needs to verify this.  He can back it out if he wants.  I
don't much care.  It's one line and it seems okay...

Revision 91186 - (view) (annotate) - [select for diffs]
Modified Fri Sep 28 19:50:22 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 69984 byte(s)
Diff to previous 91185 (colored)
  Optimize file_walk with the same logic as location_walk.  Fix both to
  have a bit more legibility, and tighter locality of scope for a smaller
  number of variables.

Revision 91185 - (view) (annotate) - [select for diffs]
Modified Fri Sep 28 18:56:21 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 67433 byte(s)
Diff to previous 91169 (colored)
  Split out (soon to be) common code for all _walk functions
  (no net change to location_walk).

Revision 91169 - (view) (annotate) - [select for diffs]
Modified Fri Sep 28 04:46:37 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 66680 byte(s)
Diff to previous 91140 (colored)
  Overhaul the compatibility with 1.3's subrequest and redirect processing.

  Eliminate URI-centric phases in ap_process_request_internal() for pure
  file subrequests (that don't correspond to URI space.)  translate_name
  hook and location_walks are skipped for these requests.

  Moves the reset of the per_dir_config out of directory_walk into the
  internal request processing code, so that resources with alternate
  map_to_storage requirements start with clean r->server->lookup_defaults.

  Optimizes out the authn/authz of effectively identical subreqests and
  redirects, as the sub_req_lookup calls once did.  Unlike 1.3, we copy
  r->user and r->ap_auth_type from main/prev for the request's reference.

  Stop copying the subrequest's r->chunked flag (Rbb assured me it looked
  bogus, chunking is on the parent request) and clean out other #if 0'ed
  cruft we don't need to refer back to anymore.

Revision 91140 - (view) (annotate) - [select for diffs]
Modified Tue Sep 25 09:46:37 2001 UTC (8 years, 2 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 65362 byte(s)
Diff to previous 91131 (colored)
fix a gcc warning -- "/* within a comment"

Revision 91131 - (view) (annotate) - [select for diffs]
Modified Mon Sep 24 21:07:06 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 65362 byte(s)
Diff to previous 91095 (colored)
  Joy, joy.  Relax the rules, just a wee bit, and prepare to move the fatal
  ending to this filename-less request a bit later in the request cycle, to
  give older, ported modules more time to cope without implementing
  the map_to_storage hook.

Revision 91095 - (view) (annotate) - [select for diffs]
Modified Thu Sep 20 17:54:51 2001 UTC (8 years, 2 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 64211 byte(s)
Diff to previous 90929 (colored)
Currently, when the map-to-storage handler for TRACE returns DONE, the
caller -- ap_process_request_internal() -- catches that and returns
OK to its caller -- ap_process_request().  But ap_process_request(),
seeing OK, tries to run a handler.  It needs to skip that if the
request was completed in ap_process_request_internal().

Reviewed by:	William A. Rowe, Jr.

Revision 90929 - (view) (annotate) - [select for diffs]
Modified Thu Sep 6 17:58:28 2001 UTC (8 years, 2 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 64272 byte(s)
Diff to previous 90925 (colored)
Fix a seg fault in mod_include.  When we are generating an
internal redirect, we must set r->uri to "", not a bogus
string, and not NULL.  [Ryan Bloom]

Revision 90925 - (view) (annotate) - [select for diffs]
Modified Thu Sep 6 16:48:15 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 64285 byte(s)
Diff to previous 90868 (colored)
  Optimize location_walk.  We build an array of incremental matches, and
  on attempting a subreq/redirect or simply a second pass, and for each
  match in series, if the section is a match,  we reuse the merge result
  for that section.

Revision 90868 - (view) (annotate) - [select for diffs]
Modified Sat Sep 1 05:21:16 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 62532 byte(s)
Diff to previous 90865 (colored)
  After some consideration - Location walk is always required (before and
  after any other map_to_storage operations.)  Therefore, initialize any
  NULL r->per_dir_config at this phase (the earliest necessary point.)

Revision 90865 - (view) (annotate) - [select for diffs]
Modified Sat Sep 1 02:38:18 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 62353 byte(s)
Diff to previous 90861 (colored)
  I love it when a plan comes together.

  We hadn't prepared for this possibility that someone didn't set up the
  r->per_dir_config (which the subreq's didn't).  Since we are first in
  line, we will handle it if need be.

Revision 90861 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 22:33:24 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 62264 byte(s)
Diff to previous 90860 (colored)
  Ahhh, a const headache.  Here's a flag that is writeable.

Revision 90860 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 22:29:28 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 62252 byte(s)
Diff to previous 90859 (colored)
  Since we can preserve and further canonicalize the subreq_file name onto
  a canonical r->filename, let's do so.

Revision 90859 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 22:07:05 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 62045 byte(s)
Diff to previous 90846 (colored)
  Add some notes of things I noticed while proofing.  We still need a
  resolution to rnew->chunked = r->chunked in subrequests!

Revision 90846 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 10:58:47 2001 UTC (8 years, 2 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 61904 byte(s)
Diff to previous 90842 (colored)
resolve_symlink() is only used if REPLACE_PATH_INFO_METHOD is
defined

Revision 90842 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 05:05:58 2001 UTC (8 years, 2 months ago) by jwoolley
Original Path: httpd/httpd/trunk/server/request.c
File length: 61834 byte(s)
Diff to previous 90836 (colored)
As I understand it, this test is supposed to read like so:

----------------------------------------------------
if the base paths are the same
    if (strncmp(rnew->filename, fdir, fdirlen) == 0

and there's more stuff in the new filename than just the base path
        && rnew->filename[fdirlen]

and that stuff contains no slashes
        && ap_strchr_c(rnew->filename + fdirlen, '/') == NULL)
----------------------------------------------------

Assuming that's a correct translation, which I believe to be the case
(and which also seems to jive with the previous version of the test),
then that first part darned well better check == 0, as opposed to != 0.
strncmp returns 0 when they match.  =-)

And voila,
"All tests successful, 1 test skipped."
is the result from httpd-test

Revision 90836 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 02:31:08 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 61834 byte(s)
Diff to previous 90834 (colored)
  Invoking the handler must occur at the caller's discression, in order
  for the sub_req mechanism to share this code.

Revision 90834 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 02:23:25 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 61926 byte(s)
Diff to previous 90833 (colored)
  Move the ap_run_insert_filters to consistently occur in
  ap_process_request_internal.  This allows the sub_req handler
  to alter the filters before the subreq is actually run.

Revision 90833 - (view) (annotate) - [select for diffs]
Modified Fri Aug 31 01:50:15 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 62011 byte(s)
Diff to previous 90829 (colored)
    Normalize all paths to run the same, common code for pre-request setup
    from the primary request, redirects and sub-requests.

    This will significantly reduce opporunities for inconsistancy (such
    as Ian observed, and as I repaired only a month ago.)

    This promotes process_request_internal to an ap_ namespace protected
    entity in server/request.c (from it's old home in http/http_request.c)
    since this fn has no http specifics.

Reviewed (in concept): Cliff Woolley, Ian Holsman

Revision 90829 - (view) (annotate) - [select for diffs]
Modified Thu Aug 30 23:58:23 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 59036 byte(s)
Diff to previous 90823 (colored)
  The add-in/strip-off temporary trailing slash logic was really hosed
  in the new (not yet enabled) code path.  Now it's slightly hosed.

Revision 90823 - (view) (annotate) - [select for diffs]
Modified Thu Aug 30 20:48:06 2001 UTC (8 years, 2 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 59009 byte(s)
Diff to previous 90725 (colored)
  Fix the new code (not currently enabled) for directory_walk

Revision 90725 - (view) (annotate) - [select for diffs]
Modified Mon Aug 27 10:23:11 2001 UTC (8 years, 3 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 59086 byte(s)
Diff to previous 90716 (colored)
fix some calls to apr_pool_userdata_get()

(foo** just doesn't work the way we sometimes might want :( )

Revision 90716 - (view) (annotate) - [select for diffs]
Modified Mon Aug 27 04:51:58 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 59057 byte(s)
Diff to previous 90714 (colored)
  Final additional comments (for the moment) about the new optimization.

Revision 90714 - (view) (annotate) - [select for diffs]
Modified Mon Aug 27 04:37:40 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58894 byte(s)
Diff to previous 90713 (colored)
  Further optimization to location_walk() and clean up unused variables.

  We will note the end result of the merge, and if remains the same through
  the second pass, we have nothing whatsoever to do :)

Revision 90713 - (view) (annotate) - [select for diffs]
Modified Mon Aug 27 04:29:09 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58497 byte(s)
Diff to previous 90684 (colored)
  Clean up location_walk, so that this step performs a minimum
  amount of redundant effort (it must be run twice, but it will no
  longer reparse all <Location > blocks when the request uri
  hadn't changed.)

  The location walk block is refactored, with some significant changes
  in variable names for legibility.  Cooler still, it uses pool data
  instead of 'notes' for the important cache info :)

  Note the patch builds the <Location > per dir config from _nothing_,
  and then merges it into the per_dir_config.  When the underlying
  per_dir_config changes between passes, the location_walk can simply
  tack back on this preconstruct onto the new per_dir_config.

Revision 90684 - (view) (annotate) - [select for diffs]
Modified Sun Aug 26 05:10:17 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 55833 byte(s)
Diff to previous 90665 (colored)

  Eliminate proxy: (and all other 'special') processing from the
  ap_directory_walk() phase.  Modules that want to use special
  walk logic should refer to the mod_proxy map_to_location example,
  with it's proxy_walk and proxysection implementation.  This makes
  either directory_walk flavor much more legible, since that phase
  only runs against real <Directory > blocks.

  On a technical note, this patch also forces the Directory to be
  canonical (unless it is "/" or a regex.)  It also allows us to
  be more explicit when declaring <Directory > block errors.

Revision 90665 - (view) (annotate) - [select for diffs]
Modified Sat Aug 25 23:43:19 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58352 byte(s)
Diff to previous 90646 (colored)
  Introduce the map_to_storage hook, which allows modules to bypass
  the directory_walk and file_walk for non-file requests.  TRACE
  shortcut moved to http_protocol.c as APR_HOOK_MIDDLE, and the
  directory_walk/file_walk happen as APR_HOOK_VERY_LAST in core.c.

  A seperate patch to mod_proxy is required to short circuit both the
  TRACE and directory_walk/file_walk stuff.  That patch is next.

Revision 90646 - (view) (annotate) - [select for diffs]
Modified Fri Aug 24 18:12:02 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58150 byte(s)
Diff to previous 90644 (colored)
  sec, sec, who's got a sec?  This gave me a headache, but I had to clear
  out the last patch before I rearranged this to be _readable_.

  Next step for everyone's sanity, provide <Proxy > directives ;)

Revision 90644 - (view) (annotate) - [select for diffs]
Modified Fri Aug 24 18:01:25 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58052 byte(s)
Diff to previous 90592 (colored)
  Commit this code before another patch becomes to difficult to follow.

  This patch does one thing, it changes the root path "/" to reflect an
  element count of Zero (0).  directory_walk will always accept the zero
  element (which sorts first, thankfully) on it's first go around.

  So, Unix will accept "/" when it's parsing it's first element "/".

  Dos/Win32 will accept "/" and "C:/" when they parse their first element,
  "C:/".  The root sorted first, so it behaves as users expect.

  The syntax "//" or "//machine" will be depreciated for now, the user
  needs to set up the extact "//machine/share/" that they want served
  on Win32.

Revision 90592 - (view) (annotate) - [select for diffs]
Modified Thu Aug 23 21:58:07 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58908 byte(s)
Diff to previous 90591 (colored)
  Whoops.  To explain, we won't dup filename unless it really didn't match
  in the first place.  We are about to abuse test_filename, so don't try
  using that copy.

Revision 90591 - (view) (annotate) - [select for diffs]
Modified Thu Aug 23 21:56:36 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58904 byte(s)
Diff to previous 90590 (colored)
  Start with the presumption that canonical_filename is not likely to be set.
  Therefore we will canonicalize it when it doesn't match filename.

  The next optimization should take the path common to canonical_filename
  and filename, and start merging filename from there for canonicalization.

Revision 90590 - (view) (annotate) - [select for diffs]
Modified Thu Aug 23 21:21:17 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 58072 byte(s)
Diff to previous 90573 (colored)
  Another spot we are certain of the canonical_filename

Revision 90573 - (view) (annotate) - [select for diffs]
Modified Thu Aug 23 19:19:52 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 57970 byte(s)
Diff to previous 90173 (colored)
  Rather than continuing to canonicalize within directory_walk (very time
  consuming on all but *nix systems) we temporarily canonicalize to compare
  the results of the many merges, and fail on a mismatch.

  The apr_filepath_merge and ap_server_root_relative calls now merge the
  file _by canonicalizing it_.  That includes resolving all /../, /./,
  and // misnomers.

  A minor effort is required to figure out who all munges the r->filename
  in an inappropriate manner.

  The final (return to optimized state) probably involves setting an
  r->goodname argument to r->filename, every time we properly merge
  through ap_server_root_relative or apr_filepath_merge().

Revision 90173 - (view) (annotate) - [select for diffs]
Modified Wed Aug 15 21:11:59 2001 UTC (8 years, 3 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 57052 byte(s)
Diff to previous 90090 (colored)
fix some homophonic issues in comments, as well as some
mispelings found near "its" or "it's"

(helping our 4th grader with homework, couldn't help but
grep)

Revision 90090 - (view) (annotate) - [select for diffs]
Modified Sat Aug 11 04:04:13 2001 UTC (8 years, 3 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 57055 byte(s)
Diff to previous 89978 (colored)
Fix the new method code.  We need to cast 1 to an apr_int64_t or it will
be treated as a 32-bit integer, and it will wrap after being shifted
32 times.
Submitted by:	Cody Sherr <csherr@covalent.net> and
		Ryan Morgan <rmorgan@covalent.net>

Revision 89978 - (view) (annotate) - [select for diffs]
Modified Tue Aug 7 02:34:42 2001 UTC (8 years, 3 months ago) by jwoolley
Original Path: httpd/httpd/trunk/server/request.c
File length: 57043 byte(s)
Diff to previous 89934 (colored)
Fix a segfault (was getting triggered by mod_include at least) caused
by calling ap_allow_options() before setting rnew->per_dir_config.

This is the "easy looking" fix but might have side effects of which I'm
unaware... please double-check this change for correctness.

Revision 89934 - (view) (annotate) - [select for diffs]
Modified Mon Aug 6 05:26:37 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 57043 byte(s)
Diff to previous 89933 (colored)
  This was entirely broken.  We cannot skip the location walk just because
  we are in a file subrequest (think of a file server-status sitting in
  the document root, this shouldn't be blindly served as a 'file'.)

Revision 89933 - (view) (annotate) - [select for diffs]
Modified Mon Aug 6 05:07:34 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 56975 byte(s)
Diff to previous 89931 (colored)
  Just a little cleaner.

Revision 89931 - (view) (annotate) - [select for diffs]
Modified Mon Aug 6 02:27:26 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 56778 byte(s)
Diff to previous 89860 (colored)
  More explanation

Revision 89860 - (view) (annotate) - [select for diffs]
Modified Wed Aug 1 11:59:55 2001 UTC (8 years, 3 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 56611 byte(s)
Diff to previous 89856 (colored)
fix some warnings in resolve_symlink(), one of which seems to be for
a genuine bug...

The old logic

  if (!(opts & OPT_SYM_OWNER | OPT_SYM_LINKS))

wouldn't seem to work properly.  I think it would act like

  if (!((opts & OPT_SYM_OWNER) | OPT_SYM_LINKS))

This clearly isn't intended since OPT_SYM_LINKS is a constant non-zero, such
that we never really fail invalid parameters.

Revision 89856 - (view) (annotate) - [select for diffs]
Modified Wed Aug 1 06:12:37 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 56603 byte(s)
Diff to previous 89847 (colored)
  Replace check_symlinks in the ap_sub_req_lookup_* calls with
  the new resolve_symlink (also used by the new directory_walk)
  especially for performance and readability.  Left check_symlinks
  in the soon-to-be-gone get_path_info flavor of directory_walk.

Revision 89847 - (view) (annotate) - [select for diffs]
Modified Wed Aug 1 01:58:24 2001 UTC (8 years, 3 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 55011 byte(s)
Diff to previous 89792 (colored)
  Add the new directory_walk logic, eliminating get_path_info and
  check_symlinks, in a protected define REPLACE_PATH_INFO_METHOD.

  This allows others to work on vetting, caching, etc, while keeping
  the existing logic stable till it's sufficiently optimal for beta.

Revision 89792 - (view) (annotate) - [select for diffs]
Modified Mon Jul 30 19:19:35 2001 UTC (8 years, 4 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 39881 byte(s)
Diff to previous 89450 (colored)
  Use d_is_absolute within directory_walk.

Revision 89450 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 23:18:30 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 39889 byte(s)
Diff to previous 89447 (colored)
  Testing reveals a nasty side effect of this aftn's patch, this is the fix.

Revision 89447 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 21:48:53 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 39890 byte(s)
Diff to previous 89444 (colored)
  Pull harry, difficult to read sub_req_common_validation() into its own
  function so that it's apparent that this is common code.

Revision 89444 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 20:57:14 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 40216 byte(s)
Diff to previous 89443 (colored)
  Here, finally are a few cleanups of my fat fingers.

Revision 89443 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 20:53:36 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 40249 byte(s)
Diff to previous 89442 (colored)
  Now, introduce ap_sub_req_lookup_dirent() for processing apr_finfo_t
  results from mod_negotiation and mod_autoindex.

Revision 89442 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 20:46:52 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 37448 byte(s)
Diff to previous 89441 (colored)
  Pull the common cruft from ap_sub_req_lookup_*() fns.

Revision 89441 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 20:44:00 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 38958 byte(s)
Diff to previous 89439 (colored)
  Sorry, second pass, working on legibility.  This patch introduces the
  fill_in_sub_req_vars function to propogate the rnew values, but doesn't
  yet hook it in.  Note that there are two discrepancies, apparently
  pretty bad ones, that have been moved after the 'common code' so the
  next patch becomes pretty simple.

Revision 89439 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 20:30:49 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 38015 byte(s)
Diff to previous 89437 (colored)
  Revert changes in 1.7, I had applied the patch incorrectly.

Revision 89437 - (view) (annotate) - [select for diffs]
Modified Wed Jun 27 20:09:24 2001 UTC (8 years, 5 months ago) by wrowe
Original Path: httpd/httpd/trunk/server/request.c
File length: 40104 byte(s)
Diff to previous 89286 (colored)
  Move duplicated rnew cloning from apr_ap_sub_req_lookup_*() functions,
  and add an ap_sub_req_lookup_dirent() to create a subrequest from the
  results of an apr_dir_read() for mod_negotiation and mod_autoindex.

Revision 89286 - (view) (annotate) - [select for diffs]
Modified Thu Jun 7 03:02:03 2001 UTC (8 years, 5 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 38015 byte(s)
Diff to previous 89284 (colored)
back out bogus "fix" for subrequest buckets using wrong pool

Submitted by: Greg Stein

Revision 89284 - (view) (annotate) - [select for diffs]
Modified Thu Jun 7 01:24:44 2001 UTC (8 years, 5 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 39410 byte(s)
Diff to previous 89275 (colored)
implement Ryan's suggested fix for buckets associated with a subrequest
having private data in the wrong (i.e., subrequest) pool, leading to
a segfault later in processing the main request

in the patch posted on new-httpd, the temporary brigade was allocated from
the connection pool; the committed code allocates the brigade from the
main-request pool, as suggested by Ian Holsman

Revision 89275 - (view) (annotate) - [select for diffs]
Modified Wed Jun 6 12:51:21 2001 UTC (8 years, 5 months ago) by trawick
Original Path: httpd/httpd/trunk/server/request.c
File length: 38015 byte(s)
Diff to previous 88576 (colored)
nicer to compare r->finfo.filetype with APR_NOFILE instead of 0

the sub request output filter shouldn't lose the return code from
the next filter

Revision 88576 - (view) (annotate) - [select for diffs]
Modified Sun Mar 25 17:38:18 2001 UTC (8 years, 8 months ago) by dougm
Original Path: httpd/httpd/trunk/server/request.c
File length: 38018 byte(s)
Diff to previous 88532 (colored)
change create_request hook to RUN_ALL/return int so handlers can throw errors

Revision 88532 - (view) (annotate) - [select for diffs]
Modified Sun Mar 18 02:33:23 2001 UTC (8 years, 8 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 38001 byte(s)
Diff to previous 88453 (colored)
Add a hook, create_request.  This hook allows modules to modify
a request while it is being created.  This hook is called for all
request_rec's, main request, sub request, and internal redirect.
When this hook is called, the the r->main, r->prev, r->next
pointers have been set, so modules can determine what kind of
request this is.

Currently, this is only used by the core module, but protocol modules
are going to need to have the ability to affect the request while it is
being read.

Revision 88453 - (view) (annotate) - [select for diffs]
Added Mon Mar 5 04:43:56 2001 UTC (8 years, 8 months ago) by rbb
Original Path: httpd/httpd/trunk/server/request.c
File length: 37868 byte(s)
Another chunk of code from http to core.  This should continue to build
on all platforms.  The next job is to shuffle functions back and forth
so that the server builds without mod_http.

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.

  Diffs between and
  Type of Diff should be a

apache@apache.org
ViewVC Help
Powered by ViewVC 1.1.2