]> git.ipfire.org Git - thirdparty/apache/httpd.git/log
thirdparty/apache/httpd.git
3 years agoAdd a missing space.
Christophe Jaillet [Sun, 6 Mar 2022 11:02:34 +0000 (11:02 +0000)] 
Add a missing space.
[skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898647 13f79535-47bb-0310-9956-ffa450edef68

3 years agostealing 2 logtag numbers [skip ci]
Stefan Eissing [Sat, 5 Mar 2022 13:51:52 +0000 (13:51 +0000)] 
stealing 2 logtag numbers [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898623 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_http2: change the port synthesis on upgraded h1 requests
Stefan Eissing [Fri, 4 Mar 2022 09:49:45 +0000 (09:49 +0000)] 
  *) mod_http2: change the port synthesis on upgraded h1 requests
     after review by rpluem.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898593 13f79535-47bb-0310-9956-ffa450edef68

3 years agostealing 2 log numbers for http1-separation work [skip ci]
Stefan Eissing [Thu, 3 Mar 2022 09:48:10 +0000 (09:48 +0000)] 
stealing 2 log numbers for http1-separation work [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898562 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_rewrite: URI-to-filename rewrites to transparently handle proxy mappings.
Yann Ylavic [Tue, 1 Mar 2022 13:26:03 +0000 (13:26 +0000)] 
mod_rewrite: URI-to-filename rewrites to transparently handle proxy mappings.

Since mod_rewrite works on r->filename and mod_proxy's mapping=servlet|decoded
sets its "proxy:" URL there at pre_translate_name stage (i.e. before
mod_rewrite's translate_name hook), users have to match the full proxy URL in
their RewriteRules to handle proxy mappings, which is not very friendly nor
consistent with how proxy non-mapping requests have to be matched.

Let's use r->filename = r->uri in hook_uri2file() for pre_trans'ed reverse
proxy requests, and restore r->filename to its original value if the request
was finally DECLINED (like in hook_fixup).

But if a proxy mapping gets rewritten to a non-proxy request, clear any
proxy specific r->proxyreq or r->handler so that processing continues
accordingly.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898509 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test/modules/http2: enable tests again where they should be.
Stefan Eissing [Mon, 28 Feb 2022 12:12:09 +0000 (12:12 +0000)] 
  *) test/modules/http2: enable tests again where they should be.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898473 13f79535-47bb-0310-9956-ffa450edef68

3 years agoap_lua_init_mutex() is not about thead only . It also calls
Christophe Jaillet [Sun, 27 Feb 2022 09:12:13 +0000 (09:12 +0000)] 
ap_lua_init_mutex() is not about thead only . It also calls
apr_global_mutex_child_init(). So I see no good reason to skip this hook
if !APR_HAS_THREADS.

Some #if APR_HAS_THREADS are also already in place in
ap_lua_init_mutex() anyway.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898453 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_watchdog: add assertions to cleanup code
Stefan Eissing [Fri, 25 Feb 2022 13:18:51 +0000 (13:18 +0000)] 
  *) mod_watchdog: add assertions to cleanup code
  *) core/mpm_preform: do not invoke the fancy new child_stopping/stopped
     hooks when invoked from a signal handler. This is a stopgap to some
     strange behaviour in need of some deeper insight.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898418 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test: check for the mpm module used and disable http2 tests
Stefan Eissing [Fri, 25 Feb 2022 13:17:11 +0000 (13:17 +0000)] 
  *) test: check for the mpm module used and disable http2 tests
     for prefork.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898417 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test: assume that modules which do not appear in our list of DSO_MODULES
Stefan Eissing [Fri, 25 Feb 2022 09:58:48 +0000 (09:58 +0000)] 
  *) test: assume that modules which do not appear in our list of DSO_MODULES
     or MPM_MODULES from configure are statically linked and do not need a load.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898411 13f79535-47bb-0310-9956-ffa450edef68

3 years agofree memory when needed
Giovanni Bechis [Fri, 25 Feb 2022 09:23:43 +0000 (09:23 +0000)] 
free memory when needed
bz #65905

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898410 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) core/prefork: run new hook `child_stopped` only on clean exit.
Stefan Eissing [Thu, 24 Feb 2022 16:59:31 +0000 (16:59 +0000)] 
  *) core/prefork: run new hook `child_stopped` only on clean exit.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898381 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_watchdog: do not call a watchdog instance for
Stefan Eissing [Thu, 24 Feb 2022 13:20:19 +0000 (13:20 +0000)] 
  *) mod_watchdog: do not call a watchdog instance for
     AP_WATCHDOG_STATE_STOPPING outside its thread, as
     watchdog instances are not prepared to be invoked
     concurrently.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898376 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test/modules/http2. convert bytes to string before
Stefan Eissing [Thu, 24 Feb 2022 12:40:28 +0000 (12:40 +0000)] 
  *) test/modules/http2. convert bytes to string before
     writing output of a failed transfer to file.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898373 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test: latest plot twist in getting a new-enough cbindgen
Stefan Eissing [Thu, 24 Feb 2022 12:29:28 +0000 (12:29 +0000)] 
  *) test: latest plot twist in getting a new-enough cbindgen
     on focal and use it for the mod_tls tests.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898372 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_watchdog: use the `child_stopping` and `child_stopped` hooks
Stefan Eissing [Thu, 24 Feb 2022 11:56:01 +0000 (11:56 +0000)] 
  *) mod_watchdog: use the `child_stopping` and `child_stopped` hooks
     to shutdown workers before pool destruction releases global
     resources and libraries.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898370 13f79535-47bb-0310-9956-ffa450edef68

3 years ago * core/mpm: add hook 'child_stopped` that gets called when the MPM has
Stefan Eissing [Thu, 24 Feb 2022 11:53:53 +0000 (11:53 +0000)] 
  * core/mpm: add hook 'child_stopped` that gets called when the MPM has
    stopped all processing in a child process. This is when all running
    threads shall be stopped and joined.
    [Stefan Eissing]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898369 13f79535-47bb-0310-9956-ffa450edef68

3 years agoreturn early if X509_STORE_CTX_init fails
Giovanni Bechis [Thu, 24 Feb 2022 11:52:46 +0000 (11:52 +0000)] 
return early if X509_STORE_CTX_init fails
bz 65902

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898368 13f79535-47bb-0310-9956-ffa450edef68

3 years agoreturn early if ASN1_STRING_new fails
Giovanni Bechis [Thu, 24 Feb 2022 11:48:55 +0000 (11:48 +0000)] 
return early if ASN1_STRING_new fails
bz 65902

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898367 13f79535-47bb-0310-9956-ffa450edef68

3 years agorelease memory if needed
Giovanni Bechis [Thu, 24 Feb 2022 11:39:59 +0000 (11:39 +0000)] 
release memory if needed

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898366 13f79535-47bb-0310-9956-ffa450edef68

3 years agoResolves BZ65861 - clarify post_config api doc
Rich Bowen [Wed, 23 Feb 2022 14:38:20 +0000 (14:38 +0000)] 
Resolves BZ65861 - clarify post_config api doc

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898347 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_watchdog: replace the new volatile with atomic access.
Stefan Eissing [Wed, 23 Feb 2022 09:55:34 +0000 (09:55 +0000)] 
  *) mod_watchdog: replace the new volatile with atomic access.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898343 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_watchdog: use hook 'child_stopping' to signal watchdogs
Stefan Eissing [Tue, 22 Feb 2022 12:19:59 +0000 (12:19 +0000)] 
  *) mod_watchdog: use hook 'child_stopping' to signal watchdogs
     that they should end processing.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898318 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mpm/winnt: add running the 'child_stopping' hook.
Stefan Eissing [Tue, 22 Feb 2022 11:32:29 +0000 (11:32 +0000)] 
  *) mpm/winnt: add running the 'child_stopping' hook.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898317 13f79535-47bb-0310-9956-ffa450edef68

3 years agoThere is no point in calling ap_varbuf_grow() here, it is already
Christophe Jaillet [Mon, 21 Feb 2022 21:07:35 +0000 (21:07 +0000)] 
There is no point in calling ap_varbuf_grow() here, it is already
called from within ap_varbuf_strmemcat().

Moreover, 2nd parameter should be the minimum total new length, not
the amount of the growth. So this call is likely to be a no-op.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898286 13f79535-47bb-0310-9956-ffa450edef68

3 years agoRemove some APR 0.x stuff.
Christophe Jaillet [Sun, 20 Feb 2022 15:08:30 +0000 (15:08 +0000)] 
Remove some APR 0.x stuff.

The minimum supported version is 1.3 in 2.4.x

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898255 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc rebuild.
Lucien Gentis [Sat, 19 Feb 2022 14:37:46 +0000 (14:37 +0000)] 
fr doc rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898223 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc XML file update.
Lucien Gentis [Sat, 19 Feb 2022 14:36:50 +0000 (14:36 +0000)] 
fr doc XML file update.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898222 13f79535-47bb-0310-9956-ffa450edef68

3 years agoAdd a compatibility note for the 'ldap' function.
Christophe Jaillet [Sat, 19 Feb 2022 13:58:04 +0000 (13:58 +0000)] 
Add a compatibility note for the 'ldap' function.
[skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898219 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_http2: optimize authority construction on upgraded
Stefan Eissing [Fri, 18 Feb 2022 09:31:30 +0000 (09:31 +0000)] 
  *) mod_http2: optimize authority construction on upgraded
     h1 requests.
     [Ruediger Pluem]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898173 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_http2: preserve the port number given in a HTTP/1.1
Stefan Eissing [Thu, 17 Feb 2022 10:06:31 +0000 (10:06 +0000)] 
  *) mod_http2: preserve the port number given in a HTTP/1.1
     request that was Upgraded to HTTP/2. Fixes PR65881.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898146 13f79535-47bb-0310-9956-ffa450edef68

3 years ago* Change the logic to choose the maximum of both timeouts (front end socket,
Ruediger Pluem [Wed, 16 Feb 2022 12:35:36 +0000 (12:35 +0000)] 
* Change the logic to choose the maximum of both timeouts (front end socket,
  backend socket) instead of the minimum as backend timeouts can be
  configured more selectively (per worker if needed) as front end timeouts
  and typically the backend timeouts reflect the application requirements
  better.

PR: 65886

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898127 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test: capture and parse output from nghttp more reliably.
Stefan Eissing [Mon, 14 Feb 2022 13:52:55 +0000 (13:52 +0000)] 
  *) test: capture and parse output from nghttp more reliably.
     add repeat param to certain proxy tests.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898068 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc rebuild.
Lucien Gentis [Sat, 12 Feb 2022 16:54:35 +0000 (16:54 +0000)] 
fr doc rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898008 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc XML file update.
Lucien Gentis [Sat, 12 Feb 2022 16:53:25 +0000 (16:53 +0000)] 
fr doc XML file update.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898007 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc XML files updates.
Lucien Gentis [Sat, 12 Feb 2022 16:47:09 +0000 (16:47 +0000)] 
fr doc XML files updates.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898006 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFollow up to r1897940: APLOGNO()s.
Yann Ylavic [Thu, 10 Feb 2022 21:04:12 +0000 (21:04 +0000)] 
Follow up to r1897940: APLOGNO()s.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897948 13f79535-47bb-0310-9956-ffa450edef68

3 years agoAPLOGNOs for r1897940 [skip ci].
Yann Ylavic [Thu, 10 Feb 2022 21:03:32 +0000 (21:03 +0000)] 
APLOGNOs for r1897940 [skip ci].

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897947 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_http2: :scheme pseudo-header values, not matching the
Stefan Eissing [Thu, 10 Feb 2022 10:59:08 +0000 (10:59 +0000)] 
  *) mod_http2: :scheme pseudo-header values, not matching the
     connection scheme, are forwarded via absolute uris to the
     http protocol processing to preserve semantics of the request.
     Checks on combinations of pseudo-headers values/absence
     have been added as described in RFC 7540.
     Fixes <https://github.com/icing/mod_h2/issues/230>.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897940 13f79535-47bb-0310-9956-ffa450edef68

3 years agoTwo more APLOGNOs for PR #294 [skip ci]
Yann Ylavic [Wed, 9 Feb 2022 23:28:20 +0000 (23:28 +0000)] 
Two more APLOGNOs for PR #294 [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897922 13f79535-47bb-0310-9956-ffa450edef68

3 years agoab: Fix the detection for when the server performed a legitimate
Graham Leggett [Wed, 9 Feb 2022 18:23:23 +0000 (18:23 +0000)] 
ab: Fix the detection for when the server performed a legitimate
connection close as per RFC7230 6.3.1. We must check whedther the
connection was previously kept alive, and not whether the current
closed request is keepalive.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897912 13f79535-47bb-0310-9956-ffa450edef68

3 years agoReserve two APLOGNOs for PR #294 [skip ci]
Yann Ylavic [Wed, 9 Feb 2022 11:28:00 +0000 (11:28 +0000)] 
Reserve two APLOGNOs for PR #294 [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897898 13f79535-47bb-0310-9956-ffa450edef68

3 years ago* Fix a typo
Ruediger Pluem [Wed, 9 Feb 2022 09:24:12 +0000 (09:24 +0000)] 
* Fix a typo

Submitted by: Jens Schleusener <Jens.Schleusener@fossies.org>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897890 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFollow up to r1897872: New APLOGNO
Yann Ylavic [Wed, 9 Feb 2022 00:21:11 +0000 (00:21 +0000)] 
Follow up to r1897872: New APLOGNO

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897882 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFollow up to r1897872: Reserve APLOGNO [skip ci]
Yann Ylavic [Wed, 9 Feb 2022 00:20:41 +0000 (00:20 +0000)] 
Follow up to r1897872: Reserve APLOGNO [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897881 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_http2: when a h2 request carries a ':scheme' pseudoheader,
Stefan Eissing [Tue, 8 Feb 2022 13:38:49 +0000 (13:38 +0000)] 
  *) mod_http2: when a h2 request carries a ':scheme' pseudoheader,
    it gives a 400 response if the scheme does not match the
    connection. Fixes <https://github.com/icing/mod_h2/issues/230>.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897872 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_http2: Fix possible beam bucket double free from session destroy.
Yann Ylavic [Tue, 8 Feb 2022 13:07:32 +0000 (13:07 +0000)] 
mod_http2: Fix possible beam bucket double free from session destroy.

When the session pool is destroyed, so is the beam's pool so we don't
want to run the beam cleanup twice.

ASan is reporting something like this (APR_POOL_DEBUG):

=================================================================
==81201==ERROR: AddressSanitizer: heap-use-after-free on address 0x603000080ce8 at pc 0x7fdc78962cc9 bp 0x7fdc731ff4f0 sp 0x7fdc731ff4e8
READ of size 8 at 0x603000080ce8 thread T11
    #0 0x7fdc78962cc8 in recv_buffer_cleanup ~httpd/modules/http2/h2_bucket_beam.c:279
    #1 0x7fdc78962fdc in beam_cleanup ~httpd/modules/http2/h2_bucket_beam.c:306
    #2 0x7fdc7896300c in beam_pool_cleanup ~httpd/modules/http2/h2_bucket_beam.c:313
    #3 0x7fdc7c5a8239 in run_cleanups memory/unix/apr_pools.c:2689
    #4 0x7fdc7c5a50f9 in pool_clear_debug memory/unix/apr_pools.c:1867
    #5 0x7fdc7c5a562e in pool_destroy_debug memory/unix/apr_pools.c:1965
    #6 0x7fdc7c5a5179 in pool_clear_debug memory/unix/apr_pools.c:1880
    #7 0x7fdc7c5a562e in pool_destroy_debug memory/unix/apr_pools.c:1965
    #8 0x7fdc7c5a5179 in pool_clear_debug memory/unix/apr_pools.c:1880
    #9 0x7fdc7c5a562e in pool_destroy_debug memory/unix/apr_pools.c:1965
    #10 0x7fdc7c5a5179 in pool_clear_debug memory/unix/apr_pools.c:1880
    #11 0x7fdc7c5a562e in pool_destroy_debug memory/unix/apr_pools.c:1965
    #12 0x7fdc7c5a5827 in apr_pool_destroy_debug memory/unix/apr_pools.c:2014
    #13 0x7fdc789aeaa5 in h2_session_pre_close ~httpd/modules/http2/h2_session.c:1934
    #14 0x7fdc7896a20e in h2_c1_pre_close ~httpd/modules/http2/h2_c1.c:188
    #15 0x7fdc7896b538 in h2_c1_hook_pre_close ~httpd/modules/http2/h2_c1.c:308
    #16 0x5596139aeb28 in ap_run_pre_close_connection ~httpd/server/connection.c:45
    #17 0x5596139af353 in ap_prep_lingering_close ~httpd/server/connection.c:128
    #18 0x5596139af3f2 in ap_start_lingering_close ~httpd/server/connection.c:154
    #19 0x7fdc7835bdf0 in process_lingering_close ~httpd/server/mpm/event/event.c:1999
    #20 0x7fdc78359ccb in process_socket ~httpd/server/mpm/event/event.c:1540
    #21 0x7fdc783608d7 in worker_thread ~httpd/server/mpm/event/event.c:2756
    #22 0x7fdc7c5d3e57 in dummy_worker threadproc/unix/thread.c:153
    #23 0x7fdc7c441d7f in start_thread nptl/pthread_create.c:481
    #24 0x7fdc7c337bde in clone (/lib/x86_64-linux-gnu/libc.so.6+0xfcbde)

0x603000080ce8 is located 8 bytes inside of 32-byte region [0x603000080ce0,0x603000080d00)
freed by thread T11 here:
    #0 0x7fdc7c887f07 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:122
    #1 0x7fdc7c5a5420 in pool_clear_debug memory/unix/apr_pools.c:1906
    #2 0x7fdc7c5a562e in pool_destroy_debug memory/unix/apr_pools.c:1965
    #3 0x7fdc7c5a5179 in pool_clear_debug memory/unix/apr_pools.c:1880
    #4 0x7fdc7c5a562e in pool_destroy_debug memory/unix/apr_pools.c:1965
    #5 0x7fdc7c5a5827 in apr_pool_destroy_debug memory/unix/apr_pools.c:2014
    #6 0x7fdc789aeaa5 in h2_session_pre_close ~httpd/modules/http2/h2_session.c:1934
    #7 0x7fdc7896a20e in h2_c1_pre_close ~httpd/modules/http2/h2_c1.c:188
    #8 0x7fdc7896b538 in h2_c1_hook_pre_close ~httpd/modules/http2/h2_c1.c:308
    #9 0x5596139aeb28 in ap_run_pre_close_connection ~httpd/server/connection.c:45
    #10 0x5596139af353 in ap_prep_lingering_close ~httpd/server/connection.c:128
    #11 0x5596139af3f2 in ap_start_lingering_close ~httpd/server/connection.c:154
    #12 0x7fdc7835bdf0 in process_lingering_close ~httpd/server/mpm/event/event.c:1999
    #13 0x7fdc78359ccb in process_socket ~httpd/server/mpm/event/event.c:1540
    #14 0x7fdc783608d7 in worker_thread ~httpd/server/mpm/event/event.c:2756
    #15 0x7fdc7c5d3e57 in dummy_worker threadproc/unix/thread.c:153
    #16 0x7fdc7c441d7f in start_thread nptl/pthread_create.c:481

previously allocated by thread T11 here:
    #0 0x7fdc7c8882b8 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144
    #1 0x7fdc7c5a4d00 in pool_alloc memory/unix/apr_pools.c:1787
    #2 0x7fdc7c5a507a in apr_palloc_debug memory/unix/apr_pools.c:1828
    #3 0x7fdc7c4d8160 in apr_brigade_create buckets/apr_brigade.c:90
    #4 0x7fdc7c4d82d8 in apr_brigade_split_ex buckets/apr_brigade.c:107
    #5 0x7fdc78967f7c in h2_beam_receive ~httpd/modules/http2/h2_bucket_beam.c:729
    #6 0x7fdc789b65f0 in buffer_output_receive ~httpd/modules/http2/h2_stream.c:847
    #7 0x7fdc789bb655 in h2_stream_read_output ~httpd/modules/http2/h2_stream.c:1372
    #8 0x7fdc789aa155 in on_stream_output ~httpd/modules/http2/h2_session.c:1313
    #9 0x7fdc789956ba in mplx_pollset_poll ~httpd/modules/http2/h2_mplx.c:1299
    #10 0x7fdc7898deb8 in h2_mplx_c1_poll ~httpd/modules/http2/h2_mplx.c:532
    #11 0x7fdc789ae04b in h2_session_process ~httpd/modules/http2/h2_session.c:1863
    #12 0x7fdc78969b0f in h2_c1_run ~httpd/modules/http2/h2_c1.c:138
    #13 0x7fdc7896b302 in h2_c1_hook_process_connection ~httpd/modules/http2/h2_c1.c:286
    #14 0x5596139ae4b6 in ap_run_process_connection ~httpd/server/connection.c:43
    #15 0x7fdc78358d67 in process_socket ~httpd/server/mpm/event/event.c:1353
    #16 0x7fdc783608d7 in worker_thread ~httpd/server/mpm/event/event.c:2756
    #17 0x7fdc7c5d3e57 in dummy_worker threadproc/unix/thread.c:153
    #18 0x7fdc7c441d7f in start_thread nptl/pthread_create.c:481

Thread T11 created by T2 here:
    #0 0x7fdc7c7baa22 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:208
    #1 0x7fdc7c5d4534 in apr_thread_create threadproc/unix/thread.c:228
    #2 0x7fdc7836273d in start_threads ~httpd/server/mpm/event/event.c:3035
    #3 0x7fdc7c5d3e57 in dummy_worker threadproc/unix/thread.c:153
    #4 0x7fdc7c441d7f in start_thread nptl/pthread_create.c:481

Thread T2 created by T0 here:
    #0 0x7fdc7c7baa22 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cc:208
    #1 0x7fdc7c5d4534 in apr_thread_create threadproc/unix/thread.c:228
    #2 0x7fdc78363d9f in child_main ~httpd/server/mpm/event/event.c:3262
    #3 0x7fdc7836483b in make_child ~httpd/server/mpm/event/event.c:3421
    #4 0x7fdc78364b89 in startup_children ~httpd/server/mpm/event/event.c:3444
    #5 0x7fdc78368abc in event_run ~httpd/server/mpm/event/event.c:3932
    #6 0x5596139b6d18 in ap_run_mpm ~httpd/server/mpm_common.c:101
    #7 0x55961399098b in main ~httpd/server/main.c:880
    #8 0x7fdc7c2627ec in __libc_start_main ../csu/libc-start.c:332

SUMMARY: AddressSanitizer: heap-use-after-free ~httpd/modules/http2/h2_bucket_beam.c:279 in recv_buffer_cleanup
Shadow bytes around the buggy address:
  0x0c0680008140: fa fa 00 00 00 00 fa fa fd fd fd fa fa fa fd fd
  0x0c0680008150: fd fd fa fa fd fd fd fd fa fa fd fd fd fd fa fa
  0x0c0680008160: fd fd fd fd fa fa fd fd fd fd fa fa fd fd fd fd
  0x0c0680008170: fa fa fd fd fd fd fa fa fd fd fd fd fa fa fd fd
  0x0c0680008180: fd fd fa fa fd fd fd fd fa fa fd fd fd fa fa fa
=>0x0c0680008190: fd fd fd fa fa fa fd fd fd fa fa fa fd[fd]fd fd
  0x0c06800081a0: fa fa fd fd fd fd fa fa fd fd fd fd fa fa fd fd
  0x0c06800081b0: fd fd fa fa fd fd fd fd fa fa fd fd fd fd fa fa
  0x0c06800081c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800081d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800081e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==81201==ABORTING

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897868 13f79535-47bb-0310-9956-ffa450edef68

3 years agoab: Add an optional ramp delay when starting concurrent connections so
Graham Leggett [Tue, 8 Feb 2022 12:34:52 +0000 (12:34 +0000)] 
ab: Add an optional ramp delay when starting concurrent connections so
as to not trigger denial of service protection in the network. Report
levels of concurrency achieved in cases where the test completes before
full concurrency is achieved.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897866 13f79535-47bb-0310-9956-ffa450edef68

3 years ago * test) sync of mod_md test cases from github.
Stefan Eissing [Tue, 8 Feb 2022 12:19:07 +0000 (12:19 +0000)] 
  * test) sync of mod_md test cases from github.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897864 13f79535-47bb-0310-9956-ffa450edef68

3 years ago * mod_md) do not interfere with requests to /.well-known/acme-challenge/
Stefan Eissing [Tue, 8 Feb 2022 12:18:45 +0000 (12:18 +0000)] 
  * mod_md) do not interfere with requests to /.well-known/acme-challenge/
    resources if challenge type 'http-01' is not configured for a domain.
    Fixes <https://github.com/icing/mod_md/issues/279>.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897863 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFix CHANGES typo. [skip ci]
Yann Ylavic [Tue, 8 Feb 2022 12:14:09 +0000 (12:14 +0000)] 
Fix CHANGES typo. [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897862 13f79535-47bb-0310-9956-ffa450edef68

3 years agoReinstate r1897458 accidentally reverted in r1897760.
Graham Leggett [Tue, 8 Feb 2022 11:22:14 +0000 (11:22 +0000)] 
Reinstate r1897458 accidentally reverted in r1897760.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897861 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFollow up to r1896253: CHANGES entry. [skip ci]
Yann Ylavic [Tue, 8 Feb 2022 11:09:11 +0000 (11:09 +0000)] 
Follow up to r1896253: CHANGES entry. [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897859 13f79535-47bb-0310-9956-ffa450edef68

3 years agoSync CHANGES entries. [skip ci]
Yann Ylavic [Tue, 8 Feb 2022 11:04:49 +0000 (11:04 +0000)] 
Sync CHANGES entries. [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897858 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_md: the status description in MDomain's JSON, exposed in the
Stefan Eissing [Mon, 7 Feb 2022 14:40:46 +0000 (14:40 +0000)] 
  *) mod_md: the status description in MDomain's JSON, exposed in the
     md-status handler (if configure) did sometimes not carry the correct
     message when certificates needed renew.
     [Stefan Eissing]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897819 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) core/mod_ssl/mpm_event: reverting changes to nonblocing SSL handshakes
Stefan Eissing [Fri, 4 Feb 2022 12:22:26 +0000 (12:22 +0000)] 
  *) core/mod_ssl/mpm_event: reverting changes to nonblocing SSL handshakes
     to stabilize CI tests again. Previous revision of trunk has been copied
     to branches/trunk-ssl-handshake-unblocking to make those into a PR where
     changes can be discussed and tested separately.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897760 13f79535-47bb-0310-9956-ffa450edef68

3 years agodoc update [skip ci]
Stefan Eissing [Fri, 4 Feb 2022 09:53:40 +0000 (09:53 +0000)] 
doc update [skip ci]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897754 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) mod_http2: remove mentioning of Cache Digest draft
Stefan Eissing [Fri, 4 Feb 2022 09:53:21 +0000 (09:53 +0000)] 
  *) mod_http2: remove mentioning of Cache Digest draft
     that has been redacted for some time.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897753 13f79535-47bb-0310-9956-ffa450edef68

3 years agocore: Follow up to r1897240 & r1897691: Syntax.
Yann Ylavic [Wed, 2 Feb 2022 10:21:03 +0000 (10:21 +0000)] 
core: Follow up to r1897240 & r1897691: Syntax.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897692 13f79535-47bb-0310-9956-ffa450edef68

3 years agocore: Follow up to r1897240: Provide/export ap_thread_current_create()
Yann Ylavic [Wed, 2 Feb 2022 10:18:41 +0000 (10:18 +0000)] 
core: Follow up to r1897240: Provide/export ap_thread_current_create()

For completness, and possibly to ease backport to 2.4.x for MPM winnt.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897691 13f79535-47bb-0310-9956-ffa450edef68

3 years agocore: Follow up to r1897240: Opt-out for AP_HAS_THREAD_LOCAL and/or pcre's usage.
Yann Ylavic [Wed, 2 Feb 2022 10:02:26 +0000 (10:02 +0000)] 
core: Follow up to r1897240: Opt-out for AP_HAS_THREAD_LOCAL and/or pcre's usage.

If the compiler's thread_local is not efficient enough on some platforms, or
not desired, have a way to disable its usage in httpd (at compile time).

Handle -DAP_NO_THREAD_LOCAL and/or -DAPREG_NO_THREAD_LOCAL as build opt-out for
thread_local usage in httpd gobally and/or in ap_regex only (respectively).

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897689 13f79535-47bb-0310-9956-ffa450edef68

3 years agomain: Follow up to r1897240: Fix bad log copypasta.
Yann Ylavic [Wed, 2 Feb 2022 02:06:42 +0000 (02:06 +0000)] 
main: Follow up to r1897240: Fix bad log copypasta.

Don't stderr printf the "stat" and "failed" results from the previous
apr_app_initialize() call for an error in ap_thread_main_create().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897680 13f79535-47bb-0310-9956-ffa450edef68

3 years agocheck BIO_new(3) return values
Giovanni Bechis [Tue, 1 Feb 2022 15:29:18 +0000 (15:29 +0000)] 
check BIO_new(3) return values

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897663 13f79535-47bb-0310-9956-ffa450edef68

3 years agocheck BIO_new(3) return values
Giovanni Bechis [Tue, 1 Feb 2022 15:00:20 +0000 (15:00 +0000)] 
check BIO_new(3) return values

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897662 13f79535-47bb-0310-9956-ffa450edef68

3 years agoap_regex: Follow up to r1897240: Fetch the ovector _after_ the match.
Yann Ylavic [Tue, 1 Feb 2022 10:51:30 +0000 (10:51 +0000)] 
ap_regex: Follow up to r1897240: Fetch the ovector _after_ the match.

Possibly(?) pcre2_match() can modifiy the given pcre2_match_data and invalidate
the old ovector, be safe and fetch it after.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897651 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test cases
Stefan Eissing [Tue, 1 Feb 2022 10:40:30 +0000 (10:40 +0000)] 
  *) test cases
     - disabling test_h2_105_02 due to handshake timeouts no longer working
     - adjusting some log levels
     - ignoring new handshake error AHLOGNOs

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897650 13f79535-47bb-0310-9956-ffa450edef68

3 years ago *) test: adding some more patterns to gitignore
Stefan Eissing [Tue, 1 Feb 2022 10:08:06 +0000 (10:08 +0000)] 
  *) test: adding some more patterns to gitignore

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897647 13f79535-47bb-0310-9956-ffa450edef68

3 years ago* Stupid mine. Evgeny is a committer here
Ruediger Pluem [Mon, 31 Jan 2022 08:58:36 +0000 (08:58 +0000)] 
* Stupid mine. Evgeny is a committer here

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897619 13f79535-47bb-0310-9956-ffa450edef68

3 years ago* Fix typo
Ruediger Pluem [Mon, 31 Jan 2022 08:19:14 +0000 (08:19 +0000)] 
* Fix typo

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897615 13f79535-47bb-0310-9956-ffa450edef68

3 years ago* CHANGES entry for r1897182
Ruediger Pluem [Mon, 31 Jan 2022 08:16:35 +0000 (08:16 +0000)] 
* CHANGES entry for r1897182

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897614 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc rebuild.
Lucien Gentis [Sat, 29 Jan 2022 13:27:49 +0000 (13:27 +0000)] 
fr doc rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897581 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc XML file update.
Lucien Gentis [Sat, 29 Jan 2022 13:26:55 +0000 (13:26 +0000)] 
fr doc XML file update.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897580 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_cgi[d]: Close the connection after handling nph- scripts.
Yann Ylavic [Fri, 28 Jan 2022 12:32:25 +0000 (12:32 +0000)] 
mod_cgi[d]: Close the connection after handling nph- scripts.

The HTTP output filters chain is bypassed for nph- scripts (whatever this
means), so there is no way to know whether the connection is reusable after
sending the cgi response (opaque header + body).

Set r->connection->keepalive = AP_CONN_CLOSE unconditionally.

For instance test frameork's "nph-foldhdr.pl" script responds with HTTP/1.0
and no Content-Length so closing the connection is the only way to detect the
end of response for the peer.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897563 13f79535-47bb-0310-9956-ffa450edef68

3 years agompm_event: Use APR_POLLEXCL when available to prevent thundering hurd.
Yann Ylavic [Thu, 27 Jan 2022 15:06:55 +0000 (15:06 +0000)] 
mpm_event: Use APR_POLLEXCL when available to prevent thundering hurd.

If APR_POLLEXCL is available, use it to prevent the thundering
herd issue. The listening sockets are potentially polled by all
the children at the same time, when new connections arrive this
avoids all of them to be woken up while most would get EAGAIN
on accept().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897551 13f79535-47bb-0310-9956-ffa450edef68

3 years agocore: Follow up to r1897460: Provide ap_thread_main_create().
Yann Ylavic [Thu, 27 Jan 2022 12:34:53 +0000 (12:34 +0000)] 
core: Follow up to r1897460: Provide ap_thread_main_create().

Replace ap_thread_current_create() by ap_thread_main_create() which is how
it's used by httpd. The former is now a local helper only to implement the
latter.

This allows to consolidate/factorize common code in the main() of httpd and
the unix MPMs.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897543 13f79535-47bb-0310-9956-ffa450edef68

3 years agocore: Follow up to r1897460: Implement and use ap_thread_current_after_fork().
Yann Ylavic [Tue, 25 Jan 2022 20:28:28 +0000 (20:28 +0000)] 
core: Follow up to r1897460: Implement and use ap_thread_current_after_fork().

thread_local variables are not (always?) reset on fork(), so we need a way
to set the current_thread to NULL in the child process.

Implement and use ap_thread_current_after_fork() for that.

* include/httpd.h:
  Define ap_thread_current_after_fork().

* server/util.c:
  Implement ap_thread_current_after_fork().

* server/mpm/event/event.c, server/mpm/prefork/prefork.c,
    server/mpm/worker/worker.c:
  Use ap_thread_current_after_fork().

* server/mpm/winnt/child.c:
  Windows processes are not fork()ed and each child runs the main(), so
  ap_thread_current_create() was already called there.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897472 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFollow up to r1897460: !APR_HAS_THREAD implies no ap_thread_* either.
Yann Ylavic [Tue, 25 Jan 2022 17:55:16 +0000 (17:55 +0000)] 
Follow up to r1897460: !APR_HAS_THREAD implies no ap_thread_* either.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897462 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFollow up to r1897460: APLOGNOs.
Yann Ylavic [Tue, 25 Jan 2022 17:41:42 +0000 (17:41 +0000)] 
Follow up to r1897460: APLOGNOs.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897461 13f79535-47bb-0310-9956-ffa450edef68

3 years agocore: Efficient ap_thread_current() when apr_thread_local() is missing.
Yann Ylavic [Tue, 25 Jan 2022 17:34:57 +0000 (17:34 +0000)] 
core: Efficient ap_thread_current() when apr_thread_local() is missing.

#define ap_thread_create, ap_thread_current_create and ap_thread_current to
their apr-1.8+ equivalent if available, or implement them using the compiler's
thread_local mechanism if available, or finally provide stubs otherwise.

#define AP_HAS_THREAD_LOCAL to 1 in the two former case or 0 otherwise, while
AP_THREAD_LOCAL is defined to the compiler's keyword iff AP_HAS_THREAD_LOCAL.

Replace all apr_thread_create() calls with ap_thread_create() so that httpd
threads can use ap_thread_current()'s pool data as Thread Local Storage.

Bump MMN minor.

* include/httpd.h():
  Define AP_HAS_THREAD_LOCAL, AP_THREAD_LOCAL (eventually), ap_thread_create(),
  ap_thread_current_create() and ap_thread_current().

* server/util.c:
  Implement ap_thread_create(), ap_thread_current_create() and
  ap_thread_current() when APR < 1.8.

* modules/core/mod_watchdog.c, modules/http2/h2_workers.c,
    modules/ssl/mod_ssl_ct.c:
  Use ap_thread_create() instead of apr_thread_create.

* server/main.c:
  Use AP_HAS_THREAD_LOCAL and ap_thread_current_create instead of APR's.

* server/util_pcre.c:
  Use AP_HAS_THREAD_LOCAL and ap_thread_current instead of APR's.

* server/mpm/event/event.c, server/mpm/worker/worker.c,
    server/mpm/prefork/prefork.c:
  Use ap_thread_create() instead of apr_thread_create.
  Create an apr_thread_t/ap_thread_current() for the main chaild thread usable
  at child_init().

* server/mpm/winnt/child.c:
  Use ap_thread_create() instead of CreateThread().
  Create an apr_thread_t/ap_thread_current() for the main chaild thread usable

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897460 13f79535-47bb-0310-9956-ffa450edef68

3 years agoap_regex: Follow up to r1897240: #if APR_HAS_THREAD_LOCAL, not #ifdef.
Yann Ylavic [Tue, 25 Jan 2022 16:41:48 +0000 (16:41 +0000)] 
ap_regex: Follow up to r1897240: #if APR_HAS_THREAD_LOCAL, not #ifdef.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897459 13f79535-47bb-0310-9956-ffa450edef68

3 years agoab: Respond appropriately to SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE.
Graham Leggett [Tue, 25 Jan 2022 15:54:22 +0000 (15:54 +0000)] 
ab: Respond appropriately to SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE.
Previously the correct event was polled for, but the response to the poll
would call write instead of read, and read instead of write. PR 55952

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897458 13f79535-47bb-0310-9956-ffa450edef68

3 years agoFixes ambiguos example, as per https://bz.apache.org/bugzilla/show_bug.cgi?id=63714
Rich Bowen [Mon, 24 Jan 2022 16:34:06 +0000 (16:34 +0000)] 
Fixes ambiguos example, as per https://bz.apache.org/bugzilla/show_bug.cgi?id=63714

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897425 13f79535-47bb-0310-9956-ffa450edef68

3 years agoBegone, foul tabs.
Graham Leggett [Mon, 24 Jan 2022 16:20:07 +0000 (16:20 +0000)] 
Begone, foul tabs.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897424 13f79535-47bb-0310-9956-ffa450edef68

3 years agoevent: Add AP_MPM_CAN_AGAIN and AGAIN to signal to the MPM that
Graham Leggett [Mon, 24 Jan 2022 16:14:42 +0000 (16:14 +0000)] 
event: Add AP_MPM_CAN_AGAIN and AGAIN to signal to the MPM that
non blocking behaviour is requested.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897423 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_reqtimeout: Set socket timeout for AP_MODE_INIT.
Yann Ylavic [Mon, 24 Jan 2022 16:08:14 +0000 (16:08 +0000)] 
mod_reqtimeout: Set socket timeout for AP_MODE_INIT.

If the SSL handshake is initiated by ssl_hook_process_connection() in
AP_MODE_INIT mode, we still want to adapt the socket timeout according
to the time left for the handshake.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897422 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_ssl: Use AP_FILTER_ERROR to indicate when the SSL filter has
Graham Leggett [Mon, 24 Jan 2022 14:11:19 +0000 (14:11 +0000)] 
mod_ssl: Use AP_FILTER_ERROR to indicate when the SSL filter has
handled its own errors.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897418 13f79535-47bb-0310-9956-ffa450edef68

3 years agoRevert stray modification in r1897336.
Graham Leggett [Mon, 24 Jan 2022 11:20:55 +0000 (11:20 +0000)] 
Revert stray modification in r1897336.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897408 13f79535-47bb-0310-9956-ffa450edef68

3 years agoAdd missing log message tag.
Graham Leggett [Sun, 23 Jan 2022 21:16:58 +0000 (21:16 +0000)] 
Add missing log message tag.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897388 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_ssl: We no longer throw away handshake errors. Handle APR_EGENERAL
Graham Leggett [Sun, 23 Jan 2022 21:16:06 +0000 (21:16 +0000)] 
mod_ssl: We no longer throw away handshake errors. Handle APR_EGENERAL
which means that mod_ssl has passed an http error down the stack.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897387 13f79535-47bb-0310-9956-ffa450edef68

3 years agoap_regex: Follow up to r1897240: cleanup PCRE2 match data on exit.
Yann Ylavic [Sun, 23 Jan 2022 20:48:29 +0000 (20:48 +0000)] 
ap_regex: Follow up to r1897240: cleanup PCRE2 match data on exit.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897386 13f79535-47bb-0310-9956-ffa450edef68

3 years agoevent: Allow the MPM to explicitly handle CONN_SENSE_WANT_WRITE instead
Graham Leggett [Sun, 23 Jan 2022 20:41:05 +0000 (20:41 +0000)] 
event: Allow the MPM to explicitly handle CONN_SENSE_WANT_WRITE instead
of support being implicit. Pass the desired sense depending on the state,
no longer default to write.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897385 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_ssl: An edge case exists where SSL_read might return SSL_ERROR_WANT_READ
Graham Leggett [Sat, 22 Jan 2022 22:02:11 +0000 (22:02 +0000)] 
mod_ssl: An edge case exists where SSL_read might return SSL_ERROR_WANT_READ
even in blocking BIO cases. Set guards so that an async MPM is not accessed
at this point. There is no need to set non blocking, mod_ssl's BIO already
knows how to do this.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897356 13f79535-47bb-0310-9956-ffa450edef68

3 years agomod_ssl: Add the missing SSL_ERROR_WANT_WRITE case in the SSL_read. Make
Graham Leggett [Sat, 22 Jan 2022 20:05:21 +0000 (20:05 +0000)] 
mod_ssl: Add the missing SSL_ERROR_WANT_WRITE case in the SSL_read. Make
sure the sense is correctly specified in response to SSL_ERROR_WANT_READ
and SSL_ERROR_WANT_WRITE so we don't poll for the wrong case.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897353 13f79535-47bb-0310-9956-ffa450edef68

3 years agoUse OK status to match process_connection behaviour.
Graham Leggett [Sat, 22 Jan 2022 18:54:37 +0000 (18:54 +0000)] 
Use OK status to match process_connection behaviour.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897352 13f79535-47bb-0310-9956-ffa450edef68

3 years agoShutdown immediately on read timeout.
Graham Leggett [Sat, 22 Jan 2022 18:27:33 +0000 (18:27 +0000)] 
Shutdown immediately on read timeout.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897351 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc rebuild.
Lucien Gentis [Sat, 22 Jan 2022 13:44:26 +0000 (13:44 +0000)] 
fr doc rebuild.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897340 13f79535-47bb-0310-9956-ffa450edef68

3 years agofr doc XML files updates.
Lucien Gentis [Sat, 22 Jan 2022 13:43:20 +0000 (13:43 +0000)] 
fr doc XML files updates.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897339 13f79535-47bb-0310-9956-ffa450edef68

3 years agoWhen failing, we need to explicitly set the connection state.
Graham Leggett [Sat, 22 Jan 2022 12:09:12 +0000 (12:09 +0000)] 
When failing, we need to explicitly set the connection state.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897336 13f79535-47bb-0310-9956-ffa450edef68

3 years agoAPR 1.3 is a requirement for building httpd 2.4 and above.
Christophe Jaillet [Sat, 22 Jan 2022 08:42:53 +0000 (08:42 +0000)] 
APR 1.3 is a requirement for building httpd 2.4 and above.

So this compatibility test can be removed.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897329 13f79535-47bb-0310-9956-ffa450edef68

3 years agoAPR (and APR-util) 1.3 is a requirement for building httpd 2.4 and above.
Christophe Jaillet [Sat, 22 Jan 2022 07:47:25 +0000 (07:47 +0000)] 
APR (and APR-util) 1.3 is a requirement for building httpd 2.4 and above.

So these compatibility tests can be removed.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897326 13f79535-47bb-0310-9956-ffa450edef68