]> git.ipfire.org Git - thirdparty/apache/httpd.git/log
thirdparty/apache/httpd.git
3 years ago *) core/mpm_event/mod_ssl: make SSL handshakes non-blocking. trunk-ssl-handshake-nonblocking 293/head trunk-ssl-handshake-nonblocking
Stefan Eissing [Fri, 4 Feb 2022 12:33:37 +0000 (12:33 +0000)] 
  *) core/mpm_event/mod_ssl: make SSL handshakes non-blocking.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-ssl-handshake-nonblocking@1897762 13f79535-47bb-0310-9956-ffa450edef68

3 years agoMerge of trunk.
Stefan Eissing [Fri, 4 Feb 2022 12:27:17 +0000 (12:27 +0000)] 
Merge of trunk.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-ssl-handshake-nonblocking@1897761 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 agoCopy of current trunk with current ssl nonblocking handshake changes.
Stefan Eissing [Fri, 4 Feb 2022 10:03:21 +0000 (10:03 +0000)] 
Copy of current trunk with current ssl nonblocking handshake changes.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-ssl-handshake-nonblocking@1897758 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

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:32:36 +0000 (07:32 +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@1897325 13f79535-47bb-0310-9956-ffa450edef68

3 years agoLink to where to open a bug, as requested in
Rich Bowen [Fri, 21 Jan 2022 16:39:57 +0000 (16:39 +0000)] 
Link to where to open a bug, as requested in
https://bz.apache.org/bugzilla/show_bug.cgi?id=61218

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

3 years agoRemoves link to long-gone website.
Rich Bowen [Fri, 21 Jan 2022 16:05:28 +0000 (16:05 +0000)] 
Removes link to long-gone website.
Fixes https://bz.apache.org/bugzilla/show_bug.cgi?id=65651

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

3 years agoPatch from Vedran Miletić. Notes version when this is supported.
Rich Bowen [Fri, 21 Jan 2022 15:21:10 +0000 (15:21 +0000)] 
Patch from Vedran Miletić. Notes version when this is supported.

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

3 years agoevent: Add support for non blocking behaviour in the
Graham Leggett [Fri, 21 Jan 2022 00:09:24 +0000 (00:09 +0000)] 
event: Add support for non blocking behaviour in the
CONN_STATE_READ_REQUEST_LINE phase, in addition to the existing
CONN_STATE_WRITE_COMPLETION phase. Update mod_ssl to perform non blocking
TLS handshakes.

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

3 years agoRevert 1897156.
Graham Leggett [Thu, 20 Jan 2022 22:13:24 +0000 (22:13 +0000)] 
Revert 1897156.

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

3 years agoSEDERR_TMAMES and SEDERR_TMRMES are used only in sed1.c with 'eval->lnum' as an argument.
Christophe Jaillet [Thu, 20 Jan 2022 21:28:17 +0000 (21:28 +0000)] 
SEDERR_TMAMES and SEDERR_TMRMES are used only in sed1.c with 'eval->lnum' as an argument.

'eval' is of type 'struct sed_eval_s' and 'lnum' is an apr_int64_t.

So use APR_INT64_T_FMT format specifier to be more consistent.

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

3 years agoThe format specifier is APR_SIZE_T_FMT, so there is no point in trying to log -1...
Christophe Jaillet [Thu, 20 Jan 2022 21:22:04 +0000 (21:22 +0000)] 
The format specifier is APR_SIZE_T_FMT, so there is no point in trying to log -1 if apr_file_read() fails, because size_t is unsigned.

It is more straighforward to log the real value returned by apr_file_read() in such a case. The error code is also logged anyway.

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

3 years agomod_unixd: Make CoreDumpDirectory work for FreeBSD 11+. PR 65819.
Yann Ylavic [Thu, 20 Jan 2022 20:03:04 +0000 (20:03 +0000)] 
mod_unixd: Make CoreDumpDirectory work for FreeBSD 11+. PR 65819.

FreeBSD 11+ coredumping requires tracing enabled via procctl(PROC_TRACE_CTL).

Submitted by: David CARLIER <devnexen gmail.com>
Reviewed by: ylavic (by inspection)

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

3 years agoap_regex: Follow up to r1897240: cleanups.
Yann Ylavic [Thu, 20 Jan 2022 18:20:40 +0000 (18:20 +0000)] 
ap_regex: Follow up to r1897240: cleanups.

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

3 years agoap_regex: Follow up to r1897240: no ap_thread_current() yet.
Yann Ylavic [Thu, 20 Jan 2022 17:08:02 +0000 (17:08 +0000)] 
ap_regex: Follow up to r1897240: no ap_thread_current() yet.

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

3 years agoap_regex: Follow up to r1897240: runtime fallback to alloc/free.
Yann Ylavic [Thu, 20 Jan 2022 17:01:40 +0000 (17:01 +0000)] 
ap_regex: Follow up to r1897240: runtime fallback to alloc/free.

Even though APR_HAS_THREAD_LOCAL is compiled in, ap_regexec() might still be
called by non a apr_thread_t thread, let's fall back to alloc/free in this
case too.

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

3 years ago *) test:
Stefan Eissing [Thu, 20 Jan 2022 15:36:50 +0000 (15:36 +0000)] 
 *) test:
    - modules/http2: ignore some SSL library error logs when using openssl 3.x
    - modules/tls: right now, we seem unable to force curl to use TLSv1.3, adjust
      test case expectations accordingly. Use --tls-max to force v1.2 where needed.

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

3 years agoap_regex: Follow up to r1897240: Fix issues spotted by Rüdiger (thanks!).
Yann Ylavic [Thu, 20 Jan 2022 13:15:36 +0000 (13:15 +0000)] 
ap_regex: Follow up to r1897240: Fix issues spotted by Rüdiger (thanks!).

#include "apr_thread_proc.h" is enough/needed by util_pcre.c and main.c.
Fix compilation (vector => ovector) for !HAVE_PCRE2 && APR_HAS_THREAD_LOCAL.
Check pcre2_match_data_create() return value for HAVE_PCRE2 && !APR_HAS_THREAD_LOCAL.

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

3 years agoap_regex: Follow up to r1897244: Fix pmatch overflow and returned value at limits.
Yann Ylavic [Thu, 20 Jan 2022 12:47:02 +0000 (12:47 +0000)] 
ap_regex: Follow up to r1897244: Fix pmatch overflow and returned value at limits.

Don't write to pmatch[nlimit:] when ncaps > nlimit, rc should not exceed nmatch
either as before r1897244.

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

3 years agoap_regex: PCRE needs buffers sized against the number of captures only.
Yann Ylavic [Thu, 20 Jan 2022 12:16:58 +0000 (12:16 +0000)] 
ap_regex: PCRE needs buffers sized against the number of captures only.

No more (useless), no less (or PCRE will allocate a new buffer by itself to
satisfy the needs), so we should base our buffer size solely on the number
of captures in the regex (determined at compile time from the pattern).

The nmatch provided by the user is used to fill in pmatch only (up to that),
but "our" buffers are sized exactly as needed to avoid oversized allocations
or PCRE allocating by itself.

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

3 years agoFollow up to r1897240: CHANGES entry.
Yann Ylavic [Thu, 20 Jan 2022 11:37:16 +0000 (11:37 +0000)] 
Follow up to r1897240: CHANGES entry.

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

3 years agoFollow up to r1897240: APR_HAS_THREAD_LOCAL wants #ifdef instead of #if.
Yann Ylavic [Thu, 20 Jan 2022 11:24:59 +0000 (11:24 +0000)] 
Follow up to r1897240: APR_HAS_THREAD_LOCAL wants #ifdef instead of #if.

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

3 years agoap_regex: Use Thread Local Storage (if efficient) to avoid allocations.
Yann Ylavic [Thu, 20 Jan 2022 11:09:34 +0000 (11:09 +0000)] 
ap_regex: Use Thread Local Storage (if efficient) to avoid allocations.

PCRE2 wants an opaque context by providing the API to allocate and free it, so
to minimize these calls we maintain one opaque context per thread (in Thread
Local Storage, TLS) grown as needed, and while at it we do the same for PCRE1
ints vectors. Note that this requires a fast TLS mechanism to be worth it,
which is the case of apr_thread_data_get/set() from/to apr_thread_current()
when APR_HAS_THREAD_LOCAL; otherwise we'll do the allocation and freeing for
each ap_regexec().

The small stack vector is used for PCRE1 && !APR_HAS_THREAD_LOCAL only now.

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

3 years agoTrigger ci.
Yann Ylavic [Wed, 19 Jan 2022 22:03:17 +0000 (22:03 +0000)] 
Trigger ci.

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

3 years agomod_dav: Follow up to r1897156: Fix warning.
Yann Ylavic [Tue, 18 Jan 2022 20:51:42 +0000 (20:51 +0000)] 
mod_dav: Follow up to r1897156: Fix warning.

In file included from mod_dav.c:51:
mod_dav.c: In function â€˜uripath_is_canonical’:
mod_dav.c:774:38: error: passing argument 1 of â€˜ap_strchr’ discards â€˜const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
  774 |             dot_pos = strchr(dot_pos + 1, '.')) {
      |                              ~~~~~~~~^~~
/home/travis/build/apache/httpd/include/httpd.h:2469:34: note: in definition of macro â€˜strchr’
 2469 | # define strchr(s, c)  ap_strchr(s,c)
      |                                  ^
/home/travis/build/apache/httpd/include/httpd.h:2457:36: note: expected â€˜char *’ but argument is of type â€˜const char *’
 2457 | AP_DECLARE(char *) ap_strchr(char *s, int c);
      |                              ~~~~~~^

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

3 years ago* Allocate the dav_liveprop_elem structure only once in the lifetime of the
Ruediger Pluem [Tue, 18 Jan 2022 20:13:29 +0000 (20:13 +0000)] 
* Allocate the dav_liveprop_elem structure only once in the lifetime of the
  resource->pool and reuse it to avoid unnecessary huge memory allocations
  during collection walks.

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

3 years agocore: Allow an optional expression to be specified for an effective
Graham Leggett [Mon, 17 Jan 2022 16:10:51 +0000 (16:10 +0000)] 
core: Allow an optional expression to be specified for an effective
path in the DirectoryMatch and LocationMatch directives. This allows
modules like mod_dav to map URLs to URL spaces or to directories on
the filesystem.

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

3 years agobump autuconf min to 2.60
Eric Covener [Sun, 16 Jan 2022 23:29:01 +0000 (23:29 +0000)] 
bump autuconf min to 2.60

AC_CHECK_TARGET_TOOLS is new in "2.59b" but not baking that weird arg in.

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

3 years agoutil: Follow up to r1897101 and r1897105: Yet better ap_cstr_casecmp[n]().
Yann Ylavic [Sun, 16 Jan 2022 00:45:34 +0000 (00:45 +0000)] 
util: Follow up to r1897101 and r1897105: Yet better ap_cstr_casecmp[n]().

Now with a shorter epilogue.

Dump of assembler code for function ap_cstr_casecmp:
   0x0000000000049fd0 <+0>: xor    %edx,%edx
   0x0000000000049fd2 <+2>: lea    0x3d567(%rip),%r8        # 0x87540 <ucharmap>
   0x0000000000049fd9 <+9>: nopl   0x0(%rax)
   0x0000000000049fe0 <+16>: movzbl (%rsi,%rdx,1),%eax
   0x0000000000049fe4 <+20>: movzbl (%r8,%rax,1),%ecx
   0x0000000000049fe9 <+25>: movzbl (%rdi,%rdx,1),%eax
   0x0000000000049fed <+29>: add    $0x1,%rdx
   0x0000000000049ff1 <+33>: movzbl (%r8,%rax,1),%eax
   0x0000000000049ff6 <+38>: sub    %ecx,%eax
   0x0000000000049ff8 <+40>: jne    0x49ffe <ap_cstr_casecmp+46>
   0x0000000000049ffa <+42>: test   %ecx,%ecx
   0x0000000000049ffc <+44>: jne    0x49fe0 <ap_cstr_casecmp+16>
   0x0000000000049ffe <+46>: ret
End of assembler dump.

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

3 years agoutil: Follow up to r1897101: Yet better ap_cstr_casecmp[n]().
Yann Ylavic [Sun, 16 Jan 2022 00:07:45 +0000 (00:07 +0000)] 
util: Follow up to r1897101: Yet better ap_cstr_casecmp[n]().

This ones have a shorter prologue (-O2 still).

Dump of assembler code for function ap_cstr_casecmp:
   0x0000000000049fd0 <+0>: xor    %edx,%edx
   0x0000000000049fd2 <+2>: lea    0x3d567(%rip),%r8        # 0x87540 <ucharmap>
   0x0000000000049fd9 <+9>: nopl   0x0(%rax)
   0x0000000000049fe0 <+16>: movzbl (%rdi,%rdx,1),%eax
   0x0000000000049fe4 <+20>: movzbl (%rsi,%rdx,1),%ecx
   0x0000000000049fe8 <+24>: add    $0x1,%rdx
   0x0000000000049fec <+28>: movzbl (%r8,%rax,1),%eax
   0x0000000000049ff1 <+33>: movzbl (%r8,%rcx,1),%ecx
   0x0000000000049ff6 <+38>: cmp    %ecx,%eax
   0x0000000000049ff8 <+40>: jne    0x49ffe <ap_cstr_casecmp+46>
   0x0000000000049ffa <+42>: test   %eax,%eax
   0x0000000000049ffc <+44>: jne    0x49fe0 <ap_cstr_casecmp+16>
   0x0000000000049ffe <+46>: sub    %ecx,%eax
   0x000000000004a000 <+48>: ret
End of assembler dump.

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

3 years agoutil: Improve ap_cstr_casecmp() and ap_cstr_casecmpn() performances.
Yann Ylavic [Sat, 15 Jan 2022 22:41:05 +0000 (22:41 +0000)] 
util: Improve ap_cstr_casecmp() and ap_cstr_casecmpn() performances.

The new versions [1] compile to a shorter/faster assembly than the previous
ones [2], no functionnal change.

[1] ap_cstr_casecmp() after this commit:
Dump of assembler code for function ap_cstr_casecmp:
   0x0000000000049fc0 <+0>: movzbl (%rdi),%eax
   0x0000000000049fc3 <+3>: movzbl (%rsi),%edx
   0x0000000000049fc6 <+6>: lea    0x3d573(%rip),%r8        # 0x87540 <ucharmap>
   0x0000000000049fcd <+13>: movzbl (%r8,%rax,1),%eax
   0x0000000000049fd2 <+18>: movzbl (%r8,%rdx,1),%ecx
   0x0000000000049fd7 <+23>: cmp    %ecx,%eax
   0x0000000000049fd9 <+25>: jne    0x49ffe <ap_cstr_casecmp+62>
   0x0000000000049fdb <+27>: xor    %edx,%edx
   0x0000000000049fdd <+29>: jmp    0x49ffa <ap_cstr_casecmp+58>
   0x0000000000049fdf <+31>: nop
   0x0000000000049fe0 <+32>: add    $0x1,%rdx
   0x0000000000049fe4 <+36>: movzbl (%rdi,%rdx,1),%eax
   0x0000000000049fe8 <+40>: movzbl (%rsi,%rdx,1),%ecx
   0x0000000000049fec <+44>: movzbl (%r8,%rax,1),%eax
   0x0000000000049ff1 <+49>: movzbl (%r8,%rcx,1),%ecx
   0x0000000000049ff6 <+54>: cmp    %ecx,%eax
   0x0000000000049ff8 <+56>: jne    0x49ffe <ap_cstr_casecmp+62>
   0x0000000000049ffa <+58>: test   %eax,%eax
   0x0000000000049ffc <+60>: jne    0x49fe0 <ap_cstr_casecmp+32>
   0x0000000000049ffe <+62>: sub    %ecx,%eax
   0x000000000004a000 <+64>: ret
End of assembler dump.

[2] ap_cstr_casecmp() before this commit:
Dump of assembler code for function ap_cstr_casecmp:
   0x000000000004a000 <+0>: movzbl (%rdi),%eax
   0x000000000004a003 <+3>: movzbl (%rsi),%edx
   0x000000000004a006 <+6>: lea    0x3d533(%rip),%r8        # 0x87540 <ucharmap>
   0x000000000004a00d <+13>: mov    %rdi,%r9
   0x000000000004a010 <+16>: mov    %rax,%rcx
   0x000000000004a013 <+19>: movswl (%r8,%rdx,2),%edx
   0x000000000004a018 <+24>: movswl (%r8,%rax,2),%eax
   0x000000000004a01d <+29>: sub    %edx,%eax
   0x000000000004a01f <+31>: jne    0x4a052 <ap_cstr_casecmp+82>
   0x000000000004a021 <+33>: mov    $0x1,%edx
   0x000000000004a026 <+38>: test   %ecx,%ecx
   0x000000000004a028 <+40>: je     0x4a052 <ap_cstr_casecmp+82>
   0x000000000004a02a <+42>: nopw   0x0(%rax,%rax,1)
   0x000000000004a030 <+48>: movzbl (%r9,%rdx,1),%eax
   0x000000000004a035 <+53>: movzbl (%rsi,%rdx,1),%ecx
   0x000000000004a039 <+57>: add    $0x1,%rdx
   0x000000000004a03d <+61>: mov    %rax,%rdi
   0x000000000004a040 <+64>: movswl (%r8,%rcx,2),%ecx
   0x000000000004a045 <+69>: movswl (%r8,%rax,2),%eax
   0x000000000004a04a <+74>: sub    %ecx,%eax
   0x000000000004a04c <+76>: jne    0x4a052 <ap_cstr_casecmp+82>
   0x000000000004a04e <+78>: test   %edi,%edi
   0x000000000004a050 <+80>: jne    0x4a030 <ap_cstr_casecmp+48>
   0x000000000004a052 <+82>: ret
End of assembler dump.

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

3 years agofr doc rebuild.
Lucien Gentis [Sat, 15 Jan 2022 16:31:40 +0000 (16:31 +0000)] 
fr doc rebuild.

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

3 years agofr doc XML files updates.
Lucien Gentis [Sat, 15 Jan 2022 16:30:24 +0000 (16:30 +0000)] 
fr doc XML files updates.

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

3 years agoAdds a mention of the handy mod_log_debug module.
Rich Bowen [Tue, 11 Jan 2022 15:25:04 +0000 (15:25 +0000)] 
Adds a mention of the handy mod_log_debug module.

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

3 years agoRevert r1896715 and r1896740 to restore OCPS test.
Yann Ylavic [Mon, 10 Jan 2022 18:26:43 +0000 (18:26 +0000)] 
Revert r1896715 and r1896740 to restore OCPS test.

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

3 years agoOCSP test should pass now, revert r1896785.
Yann Ylavic [Mon, 10 Jan 2022 18:13:17 +0000 (18:13 +0000)] 
OCSP test should pass now, revert r1896785.

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

3 years agoFollow-up to r1896361.
Christophe Jaillet [Fri, 7 Jan 2022 17:30:48 +0000 (17:30 +0000)] 
Follow-up to r1896361.

Use a cleaner solution.

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

3 years agoocsp failure debugging, still.
Yann Ylavic [Fri, 7 Jan 2022 10:46:03 +0000 (10:46 +0000)] 
ocsp failure debugging, still.

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

3 years agoIgnore debug logs when checking segfaults. [skip ci]
Yann Ylavic [Fri, 7 Jan 2022 10:44:24 +0000 (10:44 +0000)] 
Ignore debug logs when checking segfaults. [skip ci]

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

3 years agoRevert r1896758 and r1896746 (travis debug temporaries). [skip ci]
Yann Ylavic [Thu, 6 Jan 2022 17:16:34 +0000 (17:16 +0000)] 
Revert r1896758 and r1896746 (travis debug temporaries). [skip ci]

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

3 years agoLet's see if mod_dumpio gives more ocsp hints..
Yann Ylavic [Thu, 6 Jan 2022 17:10:07 +0000 (17:10 +0000)] 
Let's see if mod_dumpio gives more ocsp hints..

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

3 years agoTry to get more perl-framework traces for the ocsp failure on travis.
Yann Ylavic [Thu, 6 Jan 2022 11:45:58 +0000 (11:45 +0000)] 
Try to get more perl-framework traces for the ocsp failure on travis.

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

3 years agoTry disabling OCSP test before running it (duh).
Joe Orton [Thu, 6 Jan 2022 08:09:04 +0000 (08:09 +0000)] 
Try disabling OCSP test before running it (duh).

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

3 years agoTemporarily disable the OCSP test.
Joe Orton [Wed, 5 Jan 2022 15:43:00 +0000 (15:43 +0000)] 
Temporarily disable the OCSP test.

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

3 years agoTransforms. [skip ci]
Joe Orton [Tue, 4 Jan 2022 08:39:41 +0000 (08:39 +0000)] 
Transforms. [skip ci]

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

3 years agoRecommend against using SSLOpenSSLConfCmd in preference to mod_ssl
Joe Orton [Tue, 4 Jan 2022 08:38:32 +0000 (08:38 +0000)] 
Recommend against using SSLOpenSSLConfCmd in preference to mod_ssl
directives, and add warning on stability/compatibility.

(e.g. PR: 65764)

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

3 years agompm_event: Fix a possible listener deadlock. PR 65769.
Yann Ylavic [Wed, 29 Dec 2021 13:12:44 +0000 (13:12 +0000)] 
mpm_event: Fix a possible listener deadlock.  PR 65769.

When the listener starts accepting more connections than the number of workers
already started (due to scheduling), the listening sockets gets disabled (per
AH03269) but nothing was re-enabling them before the end of the connections,
despite the creation of more idle/available workers in the meantime.
In the wost case there is no idle worker when the listener accepts the first
connection thus nothing to wake up the listener blocked in poll() with no
socket, hence a deadlock.

Fix this by waking up the listener when a worker becomes idle and this unblocks
connections_above_limit(). This is also worthwhile when all the workers are
started (fully initialized runtime) since the number of idle workers is a
condition for connections_above_limit() anyway so the sooner the listeners are
re-enabled the better (the other condition is the number of connections which
is unblocked appropriately by decrement_connection_count() already).

Also when a child exists with ps->quiescing == 1 and it's caught by
server_main_loop() before perform_idle_server_maintenance(), active_daemons was
not decrement as needed (including accross restarts), leading to an invalid
active_daemons accounting.

* server/mpm/event/event.c(should_enable_listensocks):
  New helper that returns whether listenning sockets can be poll()ed again.

* server/mpm/event/event.c(decrement_connection_count, listener_thread):
  Use should_enable_listensocks() where previously open-coded.

* server/mpm/event/event.c(worker_thread):
  Wake up the listener when is_idle => 1 and should_enable_listensocks().
  Have a single point of exit when workers_may_exit to make sure that the
  wake always occurs (even when exiting).

* server/mpm/event/event.c(server_main_loop):
  Decrement active_daemons not only when !ps->quiescing but also when
  ps->quiescing == 1, i.e. all the cases not handled by
  perform_idle_server_maintenance() already.

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

3 years agoMove some seealso to a more logical place as already done in 2.4.x
Christophe Jaillet [Sun, 26 Dec 2021 10:45:25 +0000 (10:45 +0000)] 
Move some seealso to a more logical place as already done in 2.4.x

[skip ci]

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

3 years agoFix a typo.
Christophe Jaillet [Sun, 26 Dec 2021 10:36:17 +0000 (10:36 +0000)] 
Fix a typo.
Prefer <code> to <var> when giving the value of a parameter
Add a missing space
Add a missing link

[skip ci]

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

3 years agoFix a typo and add a missing link to a directive
Christophe Jaillet [Sun, 26 Dec 2021 10:15:24 +0000 (10:15 +0000)] 
Fix a typo and add a missing link to a directive

[skip ci]

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

3 years agoFix some typo.
Christophe Jaillet [Sun, 26 Dec 2021 09:52:25 +0000 (09:52 +0000)] 
Fix some typo.

Add some missing spaces spotted here and there to better comply with coding style

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

3 years agoFix some typo
Christophe Jaillet [Sat, 25 Dec 2021 18:16:06 +0000 (18:16 +0000)] 
Fix some typo

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

3 years agoFix some typos
Christophe Jaillet [Sat, 25 Dec 2021 13:58:16 +0000 (13:58 +0000)] 
Fix some typos

[skip ci]

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

3 years agoRebuild
Christophe Jaillet [Sat, 25 Dec 2021 09:22:04 +0000 (09:22 +0000)] 
Rebuild

[skip ci]

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

3 years agoAdd some hyperlinks to some directives
Christophe Jaillet [Sat, 25 Dec 2021 09:04:36 +0000 (09:04 +0000)] 
Add some hyperlinks to some directives
[skip ci]

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

3 years agoAdd some <default> values in the description of some directives.
Christophe Jaillet [Sat, 25 Dec 2021 08:41:19 +0000 (08:41 +0000)] 
Add some <default> values in the description of some directives.

Add a description for TLSHonorClientOrder

[skip ci]

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