1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00
Commit Graph

235 Commits

Author SHA1 Message Date
Luca Toscano
fafe95b905 Evaluate nested If/ElseIf/Else config sections
It has been reported multiple times that nested
If/ElseIf/Else sections are not evaluated but
silently ignored.

This patch adds a simple recursion to the ap_if_walk
logic in order to allow arbitrary nested configs.
The overhead seems negligible compared to the actual
version of the ap_if_walk, but more expert feedback
is surely needed since this code gets called for every
HTTP request.

Tests are going to be added to t/apache/if_sections.t



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1792589 13f79535-47bb-0310-9956-ffa450edef68
2017-04-25 09:06:26 +00:00
Yann Ylavic
6699f4e509 Revert r1783759: really more things than intended :p
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1783760 13f79535-47bb-0310-9956-ffa450edef68
2017-02-20 13:53:16 +00:00
Yann Ylavic
37ebaff84d Follow up to r1783755: update APLOGNO.
[Reverted by r1783760]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1783759 13f79535-47bb-0310-9956-ffa450edef68
2017-02-20 13:50:49 +00:00
Daniel Ruggeri
c28ac1fea6 Fix bug 58528 - Do not read .htaccess if override and overridelist are "None"
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1737114 13f79535-47bb-0310-9956-ffa450edef68
2016-03-30 13:31:07 +00:00
Christophe Jaillet
985d9885d7 Avoid a call to 'prep_walk_cache' if possible, just as in 'ap_if_walk' and 'ap_location_walk'
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1735906 13f79535-47bb-0310-9956-ffa450edef68
2016-03-20 21:22:14 +00:00
Rainer Jung
0eddea67ac Added some more log numbers to log statements that
had none.

Those were not detected by the coccinelle script.
Only a few hard cases are remaining now.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1725548 13f79535-47bb-0310-9956-ffa450edef68
2016-01-19 15:43:17 +00:00
Christophe Jaillet
60964353d5 There is no need to duplicate some memory here, the 'path' given to ap_parse_htaccess is never modified.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1719016 13f79535-47bb-0310-9956-ffa450edef68
2015-12-10 06:39:46 +00:00
Yann Ylavic
d5c6229953 core: follow up to r1708084.
We don't want to process the subrequest either in ap_sub_req_method_uri()
if the quick-handler returned an error (or any final status).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1708095 13f79535-47bb-0310-9956-ffa450edef68
2015-10-12 11:57:42 +00:00
Yann Ylavic
9319152f39 core: follow up to r1708084,1708088: remove tabs.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1708090 13f79535-47bb-0310-9956-ffa450edef68
2015-10-12 11:05:18 +00:00
Yann Ylavic
85717fad83 core: follow up to r1708084: we still need to take care of DONE in any case.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1708088 13f79535-47bb-0310-9956-ffa450edef68
2015-10-12 11:04:02 +00:00
Yann Ylavic
42742592f0 core: we don't want to run the subrequest's handler if the
quick-handler returned an error (or any final status).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1708084 13f79535-47bb-0310-9956-ffa450edef68
2015-10-12 10:56:12 +00:00
Graham Leggett
2da6c9a57a Add the AsyncFilter directive that allows the asynchronous filter
functionality to be switched off for certain classes of filters.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1707161 13f79535-47bb-0310-9956-ffa450edef68
2015-10-06 22:33:03 +00:00
Graham Leggett
615f97f933 core: Extend support for asynchronous write completion from the
network filter to any connection or request filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1706669 13f79535-47bb-0310-9956-ffa450edef68
2015-10-04 10:10:51 +00:00
Christophe Jaillet
c449c94f28 Silence a sparse warning about inconsistent indenting
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1700319 13f79535-47bb-0310-9956-ffa450edef68
2015-08-31 19:49:32 +00:00
Eric Covener
240d6e09d1 Avoid adding duplicate subequest filters, as they would not be stripped
properly during an ap_internal_fast_redirect.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1698334 13f79535-47bb-0310-9956-ffa450edef68
2015-08-28 13:13:14 +00:00
Stefan Eissing
9d99941373 reversal of 1698239 due to nedless loop in t/apache/pr17629.t
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1698328 13f79535-47bb-0310-9956-ffa450edef68
2015-08-28 12:55:55 +00:00
Eric Covener
f7a34707da avoid adding multiple subrequest filters when there are nested subrequests.
Multiple copies of the filter were not stripped properly 
during ap_fast_internal_redirect() which left the EOS buckets
stripped out of the brigade. This results in the end-chunk never
going out on the wire for a chunked response.

observed with mainreq -> directoryindex -> FallbackResource

PR58292



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1698239 13f79535-47bb-0310-9956-ffa450edef68
2015-08-27 22:55:52 +00:00
William A. Rowe Jr
db81019ab8 SECURITY: CVE-2015-3185 (cve.mitre.org)
Replacement of ap_some_auth_required (unusable in Apache httpd 2.4)
with new ap_some_authn_required and ap_force_authn hook.

Submitted by: breser


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1684524 13f79535-47bb-0310-9956-ffa450edef68
2015-06-09 20:41:28 +00:00
William A. Rowe Jr
0271656a56 Revert r4635428 corresponding to PR41867.
The code reverted attempted to restrict comparisons of the r->filename
to given DirectoryMatch blocks.

r->filename was already a non-directory entity at this point, because we
have already fallen out of the } while (thisinfo.filetype == APR_DIR);
block above.

The addition of r->d_is_directory was redundant.  That is what is always
returned by ap_get_core_module_config(r->per_dir_config).

Note modifying dir_config required an MMN major bump as this commit could
have realigned the offset of refs (had it been added to the end, this
would correspond to an mmn minor bump) and other fields packed into the
same bytes (this is undefined). Bump on revert to prevent unexpected crashes.




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1653666 13f79535-47bb-0310-9956-ffa450edef68
2015-01-21 21:39:55 +00:00
Jan Kaluža
7dd5dc8bf6 core: Do not match files when using DirectoryMatch. PR41867.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1635428 13f79535-47bb-0310-9956-ffa450edef68
2014-10-30 08:34:12 +00:00
Graham Leggett
43e022f007 core: Support named groups and backreferences within the LocationMatch,
DirectoryMatch, FilesMatch and ProxyMatch directives.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1554300 13f79535-47bb-0310-9956-ffa450edef68
2013-12-30 19:50:52 +00:00
Stefan Fritsch
d04d01c589 Add LogLevelOverride directive that allows to override the loglevel for
clients from certain IPs


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1418767 13f79535-47bb-0310-9956-ffa450edef68
2012-12-08 22:16:31 +00:00
Jeff Trawick
9105fe3d46 add dirwalk_stat hook, for use by mpm-itk
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1388447 13f79535-47bb-0310-9956-ffa450edef68
2012-09-21 11:59:06 +00:00
Stefan Fritsch
ec5abc7ad6 ap_sub_req_lookup_dirent() depends on the over-allocation done by
ap_make_full_path and ap_escape_uri, so let's document it so that it is not
accidentally removed.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1384924 13f79535-47bb-0310-9956-ffa450edef68
2012-09-14 21:06:05 +00:00
Jeff Trawick
21f3b51790 spelling fix
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1368131 13f79535-47bb-0310-9956-ffa450edef68
2012-08-01 17:11:14 +00:00
Jeff Trawick
7479b23caa core: Add post_perdir_config hook.
Submitted by: Steinar Gunderson <sgunderson bigfoot.com>

trawick added/fixed include/ pieces


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1368121 13f79535-47bb-0310-9956-ffa450edef68
2012-08-01 16:54:00 +00:00
Stefan Fritsch
de4242afbb Adjust log message: Condition can be caused by configuration error
not only by bugs


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1351015 13f79535-47bb-0310-9956-ffa450edef68
2012-06-16 22:42:15 +00:00
Eric Covener
c5ce231c30 add filesystem paths to some common error messages.
(slightly modified from dev@ post to not bury the "failed/denied")



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1301504 13f79535-47bb-0310-9956-ffa450edef68
2012-03-16 13:38:07 +00:00
William A. Rowe Jr
2aa21a62b1 Clean up size_t abuse, part 2. ap_malloc/calloc/realloc are explicitly
excluded from this cleanup as they must be signature identical to the
clib functions, and although the definition of size_t has been flakey,
the definition of those functions appears to be generally clean since
ANSI C.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1228323 13f79535-47bb-0310-9956-ffa450edef68
2012-01-06 18:15:08 +00:00
Graham Leggett
ad489c105b Further clarify the naming of the entity that originates the request by
calling that entity a useragent instead of a client.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1214005 13f79535-47bb-0310-9956-ffa450edef68
2011-12-14 00:33:46 +00:00
Stefan Fritsch
92e366007c Add lots of unique tags to error log messages
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1209766 13f79535-47bb-0310-9956-ffa450edef68
2011-12-02 23:02:04 +00:00
Graham Leggett
394e5594d6 Introduce a per connection "peer_ip" and a per request "client_ip" to
distinguish between the raw IP address of the connection and the effective
IP address of the request.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1206291 13f79535-47bb-0310-9956-ffa450edef68
2011-11-25 19:42:04 +00:00
Graham Leggett
4ee7eea4cf Introduce a per request version of the remote IP address, which can be
optionally modified by a module when the effective IP of the client
is not the same as the real IP of the client (such as a load balancer).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1204968 13f79535-47bb-0310-9956-ffa450edef68
2011-11-22 13:10:39 +00:00
Stefan Fritsch
1951a037bf More cleanup: Expand tabs and some more indentation fixes
No functional change


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1174929 13f79535-47bb-0310-9956-ffa450edef68
2011-09-23 18:08:42 +00:00
Jim Jagielski
427c85bd23 Cleanup effort in prep for GA push:
Trim trailing whitespace... no func change



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1174751 13f79535-47bb-0310-9956-ffa450edef68
2011-09-23 13:39:32 +00:00
Daniel Ruggeri
0d69087127 Add AllowOverrideList directive and documentation
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1151654 13f79535-47bb-0310-9956-ffa450edef68
2011-07-27 22:24:14 +00:00
Stefan Fritsch
c9fd2623da Introduce ap_(get|set)_core_module_config() functions/macros and use them
everywhere.

We know that the core module has module_index 0. Therefore we can save
some pointer operations in ap_get_module_config(cv, &core_module) and
ap_set_module_config(cv, &core_module, val). As these are called rather often,
this may actually have some (small) measurable effect.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1132781 13f79535-47bb-0310-9956-ffa450edef68
2011-06-06 21:26:56 +00:00
Stefan Fritsch
93623482e3 - Add <ElseIf> and <Else> to complement <If> sections. These are both easier
to use and more efficient than using several <If> sections.
- Update <If> documentation a bit.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1132469 13f79535-47bb-0310-9956-ffa450edef68
2011-06-05 18:15:02 +00:00
Daniel Earl Poirier
fdaaf209c5 core: AllowEncodedSlashes new option NoDecode to allow encoded slashes
in request URL path info but not decode them. Change behavior of option
"On" to decode the encoded slashes as 2.0 and 2.2 do.  PR 35256,
PR 46830.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1082196 13f79535-47bb-0310-9956-ffa450edef68
2011-03-16 16:45:25 +00:00
Stefan Fritsch
209d890731 Initialize the core_dir_config->sec_files and ->sec_if only if needed.
This saves some memory and two apr_array_append()s per directory merge.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1060283 13f79535-47bb-0310-9956-ffa450edef68
2011-01-18 09:58:26 +00:00
Stefan Fritsch
a38d3c9e23 Merge the <If> sections in a separate step ap_if_walk, after ap_location_walk.
This makes <If> apply to all requests, not only to file base requests and
it allows to use <If> inside <Directory>, <Location>, and <Files> sections.

The merging of <If> sections always happens after the merging of <Location>
sections, even if the <If> section is embedded inside a <Directory> or
<Files> section.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1059867 13f79535-47bb-0310-9956-ffa450edef68
2011-01-17 11:02:38 +00:00
Stefan Fritsch
774529eb10 Save a useless check:
ap_get_request_note() cannot fail unless there is a bug somewhere and if
prep_walk_cache() returned NULL, we would just segfault later on.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1057920 13f79535-47bb-0310-9956-ffa450edef68
2011-01-11 23:10:06 +00:00
Stefan Fritsch
6ef1911acc ap_expr related fixes/enhancements:
- implement regex backreferences and make them available for setting 
  envvars in SetEnvIfExpr
- implement nested function calls in %-syntax: %{func1:%{func2:arg}} 
- actually implement evaluation of concatenation operator (oops...)
- Fix <If ... > treating an internal error as success


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1037504 13f79535-47bb-0310-9956-ffa450edef68
2010-11-21 17:22:26 +00:00
Stefan Fritsch
35cdba6976 Replace ap_expr with a parser derived from mod_ssl's parser. Make mod_ssl use
the new parser. Rework ap_expr's public interface and provide hooks for modules
to add variables and functions.

The Netware and Windows build files still need to be adjusted


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1032073 13f79535-47bb-0310-9956-ffa450edef68
2010-11-06 14:31:16 +00:00
Eric Covener
749058def7 PR#45722: if we get EACCESS in the directory walk, give the hint that's in 1.3
about search permissions on intermediate directories.  I left the prefix of the message 
as "denied" instead of "failed" to satisfy web searches.


The extended error text was added to 1.3.x but not trunk in 
  http://svn.apache.org/viewvc?view=revision&revision=99781

This plagues users on IRC!



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1031307 13f79535-47bb-0310-9956-ffa450edef68
2010-11-04 22:36:37 +00:00
Eric Covener
579ab22775 PR49809: Allow DirectoryMatch to match the EOL character ($). and
stop applying to subdirectories (that don't also match the regex) implicitly.  

The manual already uses DirectoryMatch syntax that assumes this in other places!



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@990091 13f79535-47bb-0310-9956-ffa450edef68
2010-08-27 10:46:02 +00:00
Stefan Fritsch
a8b19fb99f Add the same r->user == NULL check in the Satisfy Any code path as r965709 did
for Satisfy all


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@986606 13f79535-47bb-0310-9956-ffa450edef68
2010-08-18 09:24:04 +00:00
Jeff Trawick
0ce133f8a8 Intel's compiler warns about assigning the non-enum value 0 to the
enumeration apr_finfo_t.filetype, which is done when forgetting
the previously-derived file type

use the appropriate enum value APR_NOFILE instead

Also change comparisons of the field with 0 to use APR_NOFILE instead,
as is the practice of some existing code.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@983065 13f79535-47bb-0310-9956-ffa450edef68
2010-08-06 17:36:52 +00:00
Stefan Fritsch
a527986832 remove more unused variables
revove some obsolete comments

netware file is untested


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@982050 13f79535-47bb-0310-9956-ffa450edef68
2010-08-03 22:12:19 +00:00
Nick Kew
f5dc2a1177 Don't risk segfault in authz if r->user is not set
PR 42995


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@965709 13f79535-47bb-0310-9956-ffa450edef68
2010-07-20 01:34:39 +00:00