Commit Graph

33063 Commits

Author SHA1 Message Date
8ce99f9ef1 *) mod_http2: use the new RESPONSE buckets introduced in r1899648.
This replaces the internal H2_HEADERS bucket, removing its
     source file and also obsoletes any interim response parsing
     needs.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899649 13f79535-47bb-0310-9956-ffa450edef68
2022-04-07 10:55:09 +00:00
0296d7dfea *) core/mod_http: use RESPONSE meta buckets and a new HTTP/1.x specific
filter to send responses through the output filter chain.
     Specifically: the HTTP_HEADER output filter and ap_send_interim_response()
     create a RESPONSE bucket and no longer are concerned with HTTP/1.x
     serialization.
     A new HTTP1_RESPONSE_OUT transcode filter writes the proper HTTP/1.x
     bytes when dealing with a RESPONSE bucket. That filter installs itself
     on the pre_read_request hook when the connection has protocol 'http/1.1'.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899648 13f79535-47bb-0310-9956-ffa450edef68
2022-04-07 10:41:46 +00:00
a4ea0e7799 *) core: make ap_escape_quotes() work correctly on strings
with more than MAX_INT/2 characters, counting quotes double.
     Credit to <generalbugs@zippenhop.com> for finding this.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899609 13f79535-47bb-0310-9956-ffa450edef68
2022-04-06 09:17:42 +00:00
4e6d9a6618 * Report a broken backend in case reading the response line failed on the
first request on this connection otherwise we assume we have just run
  into a keepalive race and the backend is still healthy.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899584 13f79535-47bb-0310-9956-ffa450edef68
2022-04-05 14:18:09 +00:00
82a1d00f9b * Keep track of the number of keepalives we processed on this connection.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899564 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 16:00:58 +00:00
4816f954d8 * We need to set r->status on each call after we noticed an EOC as
data bucket generators like ap_die might have changed the status
  code. But we know better in this case and insist on the status
  code that we have seen in the error bucket.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899562 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 15:48:06 +00:00
f9c81b329a * Fix typo
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899558 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 14:12:26 +00:00
70953c495e stealong on log number [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899557 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 14:12:06 +00:00
dc18031936 *) mod_http: genereate HEADERS buckets for trailers
mod_proxy: forward trailers on chunked request encoding
     test: add http/1.x test cases in pytest



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899552 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 11:08:58 +00:00
cc232ba454 *) core: add ap_h1_append_header() for single header values.
*) mod_proxy: use of new ap_h1_header(s) functions for
     formatting HTTP/1.1 requests.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899550 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 09:41:25 +00:00
4442201e61 *) core/mod_http/mod_http2:
- adds new meta bucket types REQUEST, RESPONSE and HEADERS to the API.
     - adds a new method for setting standard response headers Date and Server
     - adds helper methods for formatting parts of HTTP/1.x, like headers and 
       end chunks for use in non-core parts of the server, e.g. mod_proxy
     - splits the HTTP_IN filter into a "generic HTTP" and "specific HTTP/1.x" 
       filter. The latter one named HTTP1_BODY_IN.
     - Uses HTTP1_BODY_IN only for requests with HTTP version <= 1.1
     - Removes the chunked input simulation from mod_http2
     - adds body_indeterminate flag to request_rec that indicates that a request 
       body may be present and needs to be read/discarded. This replaces logic 
       that thinks without Content-Length and Transfer-Encoding, no request 
       body can exist.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899547 13f79535-47bb-0310-9956-ffa450edef68
2022-04-04 08:24:09 +00:00
a6ed77c35e fr doc rebuild.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899513 13f79535-47bb-0310-9956-ffa450edef68
2022-04-02 13:14:56 +00:00
0831cafa24 fr doc XML files updates.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899512 13f79535-47bb-0310-9956-ffa450edef68
2022-04-02 13:13:52 +00:00
05e559da21 Revert r1899390.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899479 13f79535-47bb-0310-9956-ffa450edef68
2022-04-01 10:30:06 +00:00
885a08dc2e * In case we see an EOC bucket and there was an error bucket before, use its
status as status for the request. This should ensure proper status logging
  in the access log.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899454 13f79535-47bb-0310-9956-ffa450edef68
2022-03-31 20:10:21 +00:00
5d443ed4fd * Close the connection in case an EOC bucket was seen
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899451 13f79535-47bb-0310-9956-ffa450edef68
2022-03-31 19:39:17 +00:00
2bcf00780e Add WorkerBalancerGrowth. To allow creation of workers
to dynamically added balancers.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899390 13f79535-47bb-0310-9956-ffa450edef68
2022-03-30 14:42:14 +00:00
db0b3af856 ignore file in git that come from make check
[skip ci]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899389 13f79535-47bb-0310-9956-ffa450edef68
2022-03-30 13:47:44 +00:00
6815cf7d44 *) test: verify that HTTP/2 response carry Date and
`Server` headers.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899379 13f79535-47bb-0310-9956-ffa450edef68
2022-03-30 08:07:13 +00:00
41141349d1 xforms
[skip ci]



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899271 13f79535-47bb-0310-9956-ffa450edef68
2022-03-28 00:07:49 +00:00
79055994d4 add -n warnings/quirks
https://bz.apache.org/bugzilla/show_bug.cgi?id=65980


[skip ci]


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899269 13f79535-47bb-0310-9956-ffa450edef68
2022-03-28 00:06:37 +00:00
5a4506878a Fix a typo.
PR 65978.

Thanks to Stefan Hamburger <apache_f5dosu stefanhamburger.de> for finding it.

[skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899234 13f79535-47bb-0310-9956-ffa450edef68
2022-03-27 06:43:26 +00:00
736b3dfc41 fr doc rebuild.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899213 13f79535-47bb-0310-9956-ffa450edef68
2022-03-26 14:09:31 +00:00
12c8be1d3e fr doc XML doc file update.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899212 13f79535-47bb-0310-9956-ffa450edef68
2022-03-26 14:08:26 +00:00
2235b78dfb 'interpolate' is a keyword, not a user-defined string.
So it should not be in <var></var> in <syntax>  and  <code> should be used instead of <var> in explanations.

While at it, fix some other style issues and missing links spotted here and there.

[skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899205 13f79535-47bb-0310-9956-ffa450edef68
2022-03-26 06:13:36 +00:00
fd47fda1a1 *) test: making pytest option --repeat global as otherwise
there are conflicts when individual modules add that.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899198 13f79535-47bb-0310-9956-ffa450edef68
2022-03-25 13:44:41 +00:00
ae479ae567 *) test/modules/tls: make proxy tests repeatable.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899197 13f79535-47bb-0310-9956-ffa450edef68
2022-03-25 13:25:51 +00:00
8f642ea436 *) mod_http2: in a recent change, code was removed that prevented connections
with many parallel streams to stall. Re-added that, slightly improved and
     with a comment that explains the need for future humans.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899169 13f79535-47bb-0310-9956-ffa450edef68
2022-03-24 10:03:59 +00:00
a457310273 *) mod_http2: fixed a possible concurrency issue with
registering h2_mplx at h2_workers.
     Improved h2_fifo internals efficiency inspired
     by ap_fdqueue.
     Made 711 tests repeatable.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899168 13f79535-47bb-0310-9956-ffa450edef68
2022-03-24 09:06:29 +00:00
8da00af1c0 *) mod_http2: removed extra h2_mplx_worker_c2_done() arg
to retrive another c2 for processing. Just added
     complexity without measurable benefits.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899149 13f79535-47bb-0310-9956-ffa450edef68
2022-03-23 09:15:30 +00:00
4407147f02 *) mod_http2: when using a pipe for input signalling, always
write to it on sending buckets, not only when it was empty.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899108 13f79535-47bb-0310-9956-ffa450edef68
2022-03-21 10:38:05 +00:00
5b44e01136 *) mod_http2: small improvements from the http1-separation
branch that apply in general.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899107 13f79535-47bb-0310-9956-ffa450edef68
2022-03-21 09:54:41 +00:00
2039323af3 *) mod_http2: remove internal bucket beamer registry and just
copy well-known meta buckets in a beam. Was too generic.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899105 13f79535-47bb-0310-9956-ffa450edef68
2022-03-21 09:02:51 +00:00
32efaf07fd *) mod_http2: use pollset only for main connection and wakeups
for events on streams. Provide streams in INPUT pipe when
     needed and supported on the platform.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899102 13f79535-47bb-0310-9956-ffa450edef68
2022-03-21 08:19:28 +00:00
6bd9d17e08 *) core: adding a new hook and method to the API:
create_secondary_connection and ap_create_secondary_connection()
     to setup connections related to a "master" one, as used in
     the HTTP/2 protocol implementation.

  *) mod_http2: using the new API calls to get rid of knowledge
     about how the core handles conn_rec specifics.
     Improvements in pollset stream handling to use less sets.
     Using atomic read/writes instead of volatiles now.
     Keeping a reserve of "transit" pools and bucket_allocs for
     use on secondary connections to avoid repeated setup/teardowns.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1899032 13f79535-47bb-0310-9956-ffa450edef68
2022-03-18 09:52:52 +00:00
898f3dc3d0 Update to test against OpenSSL 3.0.2.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898965 13f79535-47bb-0310-9956-ffa450edef68
2022-03-16 10:39:47 +00:00
e76422db42 *) mod_md: fix compiler warning about NULL arg to a %s log. Fixes PR 65955.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898962 13f79535-47bb-0310-9956-ffa450edef68
2022-03-16 08:28:27 +00:00
6608451ae4 *) mod_http2: disabling use of apr_pollsets for secondary
connections. Measurements show that their use leads to
     up to 30% performance drop on busy scenarios.
     Detailed numbers in the comment where this is disabled.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898943 13f79535-47bb-0310-9956-ffa450edef68
2022-03-15 09:38:10 +00:00
a067983f4f fr doc rebuild.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898878 13f79535-47bb-0310-9956-ffa450edef68
2022-03-12 14:49:31 +00:00
c621307ed0 fr doc XML files updates.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898877 13f79535-47bb-0310-9956-ffa450edef68
2022-03-12 14:48:18 +00:00
657313a254 * Improve detection of _Thread_local
GCC < 4.9 reports __STDC_VERSION__ >= 201112 but does not implement
_Thread_local. Take care of this in the condition.

See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203066


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898771 13f79535-47bb-0310-9956-ffa450edef68
2022-03-09 07:35:01 +00:00
e06b6b0f24 * Improve the logic flow
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898735 13f79535-47bb-0310-9956-ffa450edef68
2022-03-08 15:41:55 +00:00
5f4978a14a * Avoid "may be uninitialized" warning
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898731 13f79535-47bb-0310-9956-ffa450edef68
2022-03-08 13:01:25 +00:00
024982eec4 Update Travis conditions to drop /candidate-2.4/ matching now release
scripts are updated to use "2.4.N..candidate" naming.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898728 13f79535-47bb-0310-9956-ffa450edef68
2022-03-08 08:46:04 +00:00
03280590ee Sync docs [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898709 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 16:49:42 +00:00
b8197b576e *) docs: add a missing closing tag.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898702 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 15:44:12 +00:00
df4d79d1a7 Sync CHANGES entries [skip ci]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898697 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 14:54:52 +00:00
8926bb1dc4 mod_sed: use size_t to allow for larger buffer sizes and unsigned arithmetics.
Let's switch to apr_size_t buffers and get rid of the ints.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898690 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 14:16:22 +00:00
3e561918fb mod_lua: Error out if lua_read_body() or lua_write_body() fail.
Otherwise r:requestbody() or r:parsebody() failures might go unnoticed for
the user.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898689 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 14:07:02 +00:00
6418c66ab6 core: Make sure and check that LimitXMLRequestBody fits in system memory.
LimitXMLRequestBody can not exceed the size needed to ap_escape_html2() the
body without failing to allocate memory, so enforce this at load time based
on APR_SIZE_MAX, and make sure that ap_escape_html2() is within the bounds.

Document the limits for LimitXMLRequestBody in our docs.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898686 13f79535-47bb-0310-9956-ffa450edef68
2022-03-07 13:36:10 +00:00