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

400 Commits

Author SHA1 Message Date
Jacob Champion
f50be63ee1 Revert new base64 function and tests
This should be trunk-only, not part of the backport branch.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/httpdunit@1799376 13f79535-47bb-0310-9956-ffa450edef68
2017-06-20 23:34:18 +00:00
Jacob Champion
6a1008ee10 util.c: add a strict Base64 decoding function
ap_pbase64decode_strict() adds to the functionality of
ap_pbase64decode() in two ways:

- the length of the decoded buffer is returned, allowing embedded NULLs
  to be retained by the caller
- the input string is strictly checked for Base64 validity, including
  correct zero-padding at the end of the string

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/httpdunit@1796208 13f79535-47bb-0310-9956-ffa450edef68
2017-05-25 21:18:42 +00:00
Nick Kew
38e269322b Introduce request taint-checking concept.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1792169 13f79535-47bb-0310-9956-ffa450edef68
2017-04-21 08:44:06 +00:00
Christophe Jaillet
e0f539c438 Move definition of ASCII_ZERO to httpd.h and rename it ZERO_ASCII for consistancy reason.
Remove definition of ASCII_CRLF which is the same as CRLF_ASCII.

Use ZERO_ASCII and CRLF_ASCII in mod_proxy_http

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1777611 13f79535-47bb-0310-9956-ffa450edef68
2017-01-06 13:58:03 +00:00
William A. Rowe Jr
138746eb14 When redrawing the parser, ap_get_http_token looked to be useful, but there's
no application for this yet in httpd, so hold off adding this function when
we backport the enhancements. ap_scan_http_token was entirely sufficient.
If the community wants this new function, we can add it when backporting
work is complete.

This patch, and the earlier patches Friday actually demanded an mmn major
bump due to struct member changes. In any final backport, new members must
be added to the end of the struct to retain an mmn minor designation.




git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1765451 13f79535-47bb-0310-9956-ffa450edef68
2016-10-18 14:56:07 +00:00
William A. Rowe Jr
411dd32a0d Complete r1764961, missed .h updates
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1765115 13f79535-47bb-0310-9956-ffa450edef68
2016-10-16 02:09:45 +00:00
Rainer Jung
ed301edc41 Followup to r1764961:
Remove declaration for dropped ap_has_cntrl().


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1765114 13f79535-47bb-0310-9956-ffa450edef68
2016-10-15 23:21:10 +00:00
Rainer Jung
22ee7dde70 Fix new declaration.
Sorry for the noise.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1765113 13f79535-47bb-0310-9956-ffa450edef68
2016-10-15 23:14:04 +00:00
Rainer Jung
57817b058a Followup to r1764961:
- ap_scan_http_uri_safe() was removed
- ap_scan_vchar_obstext() was introduced


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1765112 13f79535-47bb-0310-9956-ffa450edef68
2016-10-15 23:07:52 +00:00
William A. Rowe Jr
b9a6a0ee7b Introduce StrictURI|UnsafeURI for RFC3986 enforcement
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1756959 13f79535-47bb-0310-9956-ffa450edef68
2016-08-19 19:48:58 +00:00
Rainer Jung
d79b514c4b Fix spelling in comments and text files.
No functional change.
PR 59990


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1756038 13f79535-47bb-0310-9956-ffa450edef68
2016-08-11 19:50:02 +00:00
William A. Rowe Jr
b167818f7d Introduce ap_scan_http_field_content, ap_scan_http_token
and ap_get_http_token for more efficient string handling.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1754541 13f79535-47bb-0310-9956-ffa450edef68
2016-07-29 15:56:54 +00:00
William A. Rowe Jr
ea506b6708 A whole lotta nope, if you implement HTCPCP then register your methods in init
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1753263 13f79535-47bb-0310-9956-ffa450edef68
2016-07-18 16:20:27 +00:00
William A. Rowe Jr
b277880661 A much more innocuous cut-and-paste flaw
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1747484 13f79535-47bb-0310-9956-ffa450edef68
2016-06-09 02:42:23 +00:00
William A. Rowe Jr
3844c66c2c Rename ap_casecmpstr[n]() to ap_cstr_casecmp[n](), update with APR doxygen
This time, with merge-ability back into 2.4.x


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1747478 13f79535-47bb-0310-9956-ffa450edef68
2016-06-09 01:05:45 +00:00
William A. Rowe Jr
8b48a3686b Major issue with these two specific edits falling into r1747469
is that it becomes impossible to cleanly merge into branches/2.4.x.

Reverting this one functional/historical edit, to recommit for merging.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1747477 13f79535-47bb-0310-9956-ffa450edef68
2016-06-09 01:04:47 +00:00
William A. Rowe Jr
f4cc76ee71 Rename ap_casecmpstr[n]() to ap_cstr_casecmp[n](), update with APR doxygen
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1747469 13f79535-47bb-0310-9956-ffa450edef68
2016-06-09 00:06:42 +00:00
Yann Ylavic
239ac0c076 Follow up to r1734656: restore c->data_in_input_filters usage to
see if it helps unblocking test framework.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1736216 13f79535-47bb-0310-9956-ffa450edef68
2016-03-22 17:08:29 +00:00
Graham Leggett
64eaf888e9 core: Extend support for setting aside data from the network input filter
to any connection or request input filter.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1734656 13f79535-47bb-0310-9956-ffa450edef68
2016-03-12 00:43:58 +00:00
Jim Jagielski
256e5cbdad Add 451... Needed to adjust RESPONSE_CODES which
was not in the provided patch
BUGZ# 58985

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1730723 13f79535-47bb-0310-9956-ffa450edef68
2016-02-16 17:33:31 +00:00
William A. Rowe Jr
9d9b20f5a9 Introduce an ap_get_useragent_host() accessor to replace the old
ap_get_remote_host() in most applications, but preserve the original
behavior for all ap_get_remote_host() consumers (mostly, because we
don't have the request_rec in the first place, and also to avoid any
unintended consequences).

This accessor continues to store the remote_host of connection based
uesr agents within the conn_rec for optimization.  Only where some
other module modifies the useragent_addr will we perform a per-request
query of the remote_host.

(Fixed compilation issues noted by Ranier, applies to 2.4.x trunk,
modulo CHANGES and ap_mmn.h)



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729929 13f79535-47bb-0310-9956-ffa450edef68
2016-02-12 01:04:58 +00:00
William A. Rowe Jr
db5f097737 Unwind commit 1729901 (and 1729926), it was not ready for trunk
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729928 13f79535-47bb-0310-9956-ffa450edef68
2016-02-12 00:46:00 +00:00
William A. Rowe Jr
1dd2be03ad Introduce an ap_get_useragent_host() accessor to replace the old
ap_get_remote_host() in most applications, but preserve the original
behavior for all ap_get_remote_host() consumers (mostly, because we
don't have the request_rec in the first place, and also to avoid any
unintended consequences).

This accessor continues to store the remote_host of connection based
uesr agents within the conn_rec for optimization.  Only where some
other module modifies the useragent_addr will we perform a per-request
query of the remote_host.

(Committed previously, but backed out due to unrelated core.c changes)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729901 13f79535-47bb-0310-9956-ffa450edef68
2016-02-11 21:58:45 +00:00
William A. Rowe Jr
4e46f910d0 Revert r1729897, 1729898, my copy of core.c was polluted by a different patch
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729899 13f79535-47bb-0310-9956-ffa450edef68
2016-02-11 21:52:12 +00:00
William A. Rowe Jr
6947916643 Introduce an ap_get_useragent_host() accessor to replace the old
ap_get_remote_host() in most applications, but preserve the original
behavior for all ap_get_remote_host() consumers (mostly, because we
don't have the request_rec in the first place, and also to avoid any
unintended consequences).

This accessor continues to store the remote_host of connection based
uesr agents within the conn_rec for optimization.  Only where some
other module modifies the useragent_addr will we perform a per-request
query of the remote_host.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729897 13f79535-47bb-0310-9956-ffa450edef68
2016-02-11 21:43:32 +00:00
William A. Rowe Jr
ed1695a87a Note that this should become private to mod_ident, accessed by the accessor fn
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1729895 13f79535-47bb-0310-9956-ffa450edef68
2016-02-11 21:37:42 +00:00
Christophe Jaillet
1003310755 Constify the protocol field in the request_rec structure.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1728739 13f79535-47bb-0310-9956-ffa450edef68
2016-02-05 22:17:46 +00:00
Rainer Jung
f439615d29 Fix typo in comment (s/patterm/pattern/).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1726086 13f79535-47bb-0310-9956-ffa450edef68
2016-01-21 20:13:58 +00:00
Jim Jagielski
f970bc8d99 New support function: ap_getword_conf2[_nc] which acts
just like ap_getword_conf[_nc] but allows for {} to be
used as word quotes. That is:

   {Hello World} Foo Bar
   "Hello World" Foo Bar

are equiv.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1722321 13f79535-47bb-0310-9956-ffa450edef68
2015-12-30 12:03:01 +00:00
Jim Jagielski
7bb1b911a1 revert... hold off for now.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1722245 13f79535-47bb-0310-9956-ffa450edef68
2015-12-29 22:54:23 +00:00
Jim Jagielski
d8838f491b Ok... allow for getting "words" by also allowing the
use of curlies... That is:

   "Hello World" Foo Bar

and

   {Hello World} Foo Bar

will both return the same if using ap_getword_conf2()

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1722243 13f79535-47bb-0310-9956-ffa450edef68
2015-12-29 22:40:21 +00:00
Jim Jagielski
15d829531e we just worry about "equality" with this implementation...
So it's not a "real" strcasecmp replacement.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1715859 13f79535-47bb-0310-9956-ffa450edef68
2015-11-23 15:58:25 +00:00
Yann Ylavic
7ebe2d558b Before they are used, rename ap_str[n]casecmp() to ap_casecmpstr[n]() to match
what will probably be their APR names, avoiding any confusion wrt <strings.h>'s
functions (semantic).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1715736 13f79535-47bb-0310-9956-ffa450edef68
2015-11-23 08:36:35 +00:00
William A. Rowe Jr
8f88c9d3f1 Not strictly ASCII only, but only ASCII char case is folded
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1715546 13f79535-47bb-0310-9956-ffa450edef68
2015-11-21 17:42:57 +00:00
Jim Jagielski
1021a6c104 further info re impl
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1715527 13f79535-47bb-0310-9956-ffa450edef68
2015-11-21 13:59:43 +00:00
Jim Jagielski
897b8d4fab make bill happy (if possible!)
Note that these are ascii specific.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1715404 13f79535-47bb-0310-9956-ffa450edef68
2015-11-20 18:57:36 +00:00
Jim Jagielski
113a01b8f8 Provide our own impl of str[n]casecmp()
This simply provides it. Next step is to change all uses of
str[n]casecmp to ap_str[n]casecmp and *then* remove those silly
logic paths where we check the 1st char of a string before
we do the strcasecmp (since this is no longer expensive).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1715401 13f79535-47bb-0310-9956-ffa450edef68
2015-11-20 18:49:38 +00:00
Yann Ylavic
f9b56afc0e core: Limit to ten the number of tolerated empty lines between request,
and consume them before the pipelining check to avoid possible response
delay when reading the next request without flushing.

Before this commit, the maximum number of empty lines was the same as
configured LimitRequestFields, defaulting to 100, which was way too much.
We now use a fixed/hard limit of 10 (DEFAULT_LIMIT_BLANK_LINES).

check_pipeline() is changed to check for (up to the limit) and comsume the
trailing [CR]LFs so that they won't be interpreted as pipelined requests,
otherwise we would block on the next read without flushing data, and hence
possibly delay pending response(s) until the next/real request comes in or
the keepalive timeout expires.
 
Finally, when the maximum number of empty line is reached in
read_request_line(), or that request line does not contains at least a method
and an (valid) URI, we can fail early and avoid some failure detected in
further processing.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1710095 13f79535-47bb-0310-9956-ffa450edef68
2015-10-22 20:26: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
Stefan Eissing
d84e8bfef6 final final change to the new ap_array_str_* functions after review
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1700968 13f79535-47bb-0310-9956-ffa450edef68
2015-09-03 09:39:59 +00:00
Stefan Eissing
c6170479d3 giving ap_array_index a start parameter, adding ap_array_contains
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1698133 13f79535-47bb-0310-9956-ffa450edef68
2015-08-27 12:13:59 +00:00
Stefan Eissing
e005a156f4 creating ap_array_index in util, forwarding scheme into request processing, enabling SSL vars only when scheme is not http:, delayed connection creation until task worker assignment
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1696428 13f79535-47bb-0310-9956-ffa450edef68
2015-08-18 14:33:55 +00:00
Stefan Eissing
d0ca4ab131 introducing ap_array_index in util, used in protocol and mod_h2
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1696264 13f79535-47bb-0310-9956-ffa450edef68
2015-08-17 12:45:57 +00:00
Yann Ylavic
d9a3b78926 s/\<\(\w\+\)\>\s\+\<\1\>/\1/g
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1690137 13f79535-47bb-0310-9956-ffa450edef68
2015-07-09 18:07:50 +00:00
Yann Ylavic
33d6aaf455 http, mod_ssl: Introduce and return the 421 (Misdirected Request) status code
for clients requesting a hostname on a reused connection whose SNI (from the
TLS handshake) does not match.
PR 5802.

This allows HTTP/2 clients to fall back to a new connection as per:
https://tools.ietf.org/html/rfc7540#section-9.1.2

Proposed by: Stefan Eissing <stefan eissing.org>
Reviewed by: ylavic


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1685069 13f79535-47bb-0310-9956-ffa450edef68
2015-06-12 11:33:22 +00:00
Jim Jagielski
c08a5eb690 Allow for array of multiple simul requests per connection and
keep track of them (mostly need to worry about when there are
no more requests, but having the list could be useful later on)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1682280 13f79535-47bb-0310-9956-ffa450edef68
2015-05-28 17:01:26 +00:00
William A. Rowe Jr
33cfa9b34c Not that hard to explain...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1670805 13f79535-47bb-0310-9956-ffa450edef68
2015-04-02 01:50:45 +00:00
Graham Leggett
09c4bc62d0 http: Add support for RFC2324/RFC7168.
Sample implementation: http://people.apache.org/~minfrin/mod_teapot.c


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1670594 13f79535-47bb-0310-9956-ffa450edef68
2015-04-01 10:03:56 +00:00
Yann Ylavic
03a97d3da0 core: Follow up to r1664071: comments on new keep_alive_timeout_set flag.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1664299 13f79535-47bb-0310-9956-ffa450edef68
2015-03-05 10:41:19 +00:00