summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* *) core/mpm_event/mod_ssl: make SSL handshakes non-blocking.trunk-ssl-handshake-nonblockingStefan Eissing2022-02-0412-81/+312
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-ssl-handshake-nonblocking@1897762 13f79535-47bb-0310-9956-ffa450edef68
* Merge of trunk.Stefan Eissing2022-02-0412-312/+81
|\ | | | | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-ssl-handshake-nonblocking@1897761 13f79535-47bb-0310-9956-ffa450edef68
| * *) core/mod_ssl/mpm_event: reverting changes to nonblocing SSL handshakesStefan Eissing2022-02-0412-312/+81
| | | | | | | | | | | | | | | | | | | | 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
* | Copy of current trunk with current ssl nonblocking handshake changes.Stefan Eissing2022-02-040-0/+0
|/ | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/trunk-ssl-handshake-nonblocking@1897758 13f79535-47bb-0310-9956-ffa450edef68
* doc update [skip ci]Stefan Eissing2022-02-048-12/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897754 13f79535-47bb-0310-9956-ffa450edef68
* *) mod_http2: remove mentioning of Cache Digest draftStefan Eissing2022-02-041-4/+2
| | | | | | | | 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
* core: Follow up to r1897240 & r1897691: Syntax.Yann Ylavic2022-02-021-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897692 13f79535-47bb-0310-9956-ffa450edef68
* core: Follow up to r1897240: Provide/export ap_thread_current_create()Yann Ylavic2022-02-022-3/+7
| | | | | | | | 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
* core: Follow up to r1897240: Opt-out for AP_HAS_THREAD_LOCAL and/or pcre's ↵Yann Ylavic2022-02-023-11/+13
| | | | | | | | | | | | | | 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
* main: Follow up to r1897240: Fix bad log copypasta.Yann Ylavic2022-02-021-3/+3
| | | | | | | | | 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
* check BIO_new(3) return valuesGiovanni Bechis2022-02-015-8/+25
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897663 13f79535-47bb-0310-9956-ffa450edef68
* check BIO_new(3) return valuesGiovanni Bechis2022-02-011-3/+13
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897662 13f79535-47bb-0310-9956-ffa450edef68
* ap_regex: Follow up to r1897240: Fetch the ovector _after_ the match.Yann Ylavic2022-02-011-18/+6
| | | | | | | | | 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
* *) test casesStefan Eissing2022-02-015-15/+18
| | | | | | | | | | - 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
* *) test: adding some more patterns to gitignoreStefan Eissing2022-02-011-1/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897647 13f79535-47bb-0310-9956-ffa450edef68
* * Stupid mine. Evgeny is a committer hereRuediger Pluem2022-01-311-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897619 13f79535-47bb-0310-9956-ffa450edef68
* * Fix typoRuediger Pluem2022-01-311-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897615 13f79535-47bb-0310-9956-ffa450edef68
* * CHANGES entry for r1897182Ruediger Pluem2022-01-311-0/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897614 13f79535-47bb-0310-9956-ffa450edef68
* fr doc rebuild.Lucien Gentis2022-01-291-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897581 13f79535-47bb-0310-9956-ffa450edef68
* fr doc XML file update.Lucien Gentis2022-01-291-3/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897580 13f79535-47bb-0310-9956-ffa450edef68
* mod_cgi[d]: Close the connection after handling nph- scripts.Yann Ylavic2022-01-281-0/+3
| | | | | | | | | | | | | | | | 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
* mpm_event: Use APR_POLLEXCL when available to prevent thundering hurd.Yann Ylavic2022-01-271-0/+9
| | | | | | | | | | | | 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
* core: Follow up to r1897460: Provide ap_thread_main_create().Yann Ylavic2022-01-277-106/+64
| | | | | | | | | | | | | 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
* core: Follow up to r1897460: Implement and use ap_thread_current_after_fork().Yann Ylavic2022-01-256-38/+31
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Follow up to r1897460: !APR_HAS_THREAD implies no ap_thread_* either.Yann Ylavic2022-01-252-4/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897462 13f79535-47bb-0310-9956-ffa450edef68
* Follow up to r1897460: APLOGNOs.Yann Ylavic2022-01-255-5/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897461 13f79535-47bb-0310-9956-ffa450edef68
* core: Efficient ap_thread_current() when apr_thread_local() is missing.Yann Ylavic2022-01-2512-81/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #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
* ap_regex: Follow up to r1897240: #if APR_HAS_THREAD_LOCAL, not #ifdef.Yann Ylavic2022-01-252-6/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897459 13f79535-47bb-0310-9956-ffa450edef68
* ab: Respond appropriately to SSL_ERROR_WANT_READ and SSL_ERROR_WANT_WRITE.Graham Leggett2022-01-252-43/+85
| | | | | | | | 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
* Fixes ambiguos example, as per ↵Rich Bowen2022-01-242-4/+6
| | | | | | 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
* Begone, foul tabs.Graham Leggett2022-01-242-7/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897424 13f79535-47bb-0310-9956-ffa450edef68
* event: Add AP_MPM_CAN_AGAIN and AGAIN to signal to the MPM thatGraham Leggett2022-01-246-11/+23
| | | | | | | non blocking behaviour is requested. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897423 13f79535-47bb-0310-9956-ffa450edef68
* mod_reqtimeout: Set socket timeout for AP_MODE_INIT.Yann Ylavic2022-01-242-2/+2
| | | | | | | | | | 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
* mod_ssl: Use AP_FILTER_ERROR to indicate when the SSL filter hasGraham Leggett2022-01-242-2/+2
| | | | | | | handled its own errors. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897418 13f79535-47bb-0310-9956-ffa450edef68
* Revert stray modification in r1897336.Graham Leggett2022-01-241-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897408 13f79535-47bb-0310-9956-ffa450edef68
* Add missing log message tag.Graham Leggett2022-01-232-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897388 13f79535-47bb-0310-9956-ffa450edef68
* mod_ssl: We no longer throw away handshake errors. Handle APR_EGENERALGraham Leggett2022-01-232-2/+22
| | | | | | | 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
* ap_regex: Follow up to r1897240: cleanup PCRE2 match data on exit.Yann Ylavic2022-01-231-4/+19
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897386 13f79535-47bb-0310-9956-ffa450edef68
* event: Allow the MPM to explicitly handle CONN_SENSE_WANT_WRITE insteadGraham Leggett2022-01-231-8/+13
| | | | | | | | 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
* mod_ssl: An edge case exists where SSL_read might return SSL_ERROR_WANT_READGraham Leggett2022-01-221-12/+15
| | | | | | | | | 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
* mod_ssl: Add the missing SSL_ERROR_WANT_WRITE case in the SSL_read. MakeGraham Leggett2022-01-221-0/+24
| | | | | | | | 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
* Use OK status to match process_connection behaviour.Graham Leggett2022-01-221-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897352 13f79535-47bb-0310-9956-ffa450edef68
* Shutdown immediately on read timeout.Graham Leggett2022-01-221-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897351 13f79535-47bb-0310-9956-ffa450edef68
* fr doc rebuild.Lucien Gentis2022-01-228-14/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897340 13f79535-47bb-0310-9956-ffa450edef68
* fr doc XML files updates.Lucien Gentis2022-01-222-8/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897339 13f79535-47bb-0310-9956-ffa450edef68
* When failing, we need to explicitly set the connection state.Graham Leggett2022-01-222-2/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1897336 13f79535-47bb-0310-9956-ffa450edef68
* APR 1.3 is a requirement for building httpd 2.4 and above.Christophe Jaillet2022-01-221-7/+1
| | | | | | 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
* APR (and APR-util) 1.3 is a requirement for building httpd 2.4 and above.Christophe Jaillet2022-01-221-4/+2
| | | | | | 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
* APR (and APR-util) 1.3 is a requirement for building httpd 2.4 and above.Christophe Jaillet2022-01-221-13/+0
| | | | | | 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
* Link to where to open a bug, as requested in Rich Bowen2022-01-212-3/+5
| | | | | | | 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