*) mod_ssl: Handle SSL_read() return code 0 similarly to <0. It is needed when using OpenSSL 1.1.1 and should not harm for versions before 1.1.1. Without the patch for 1.1.1 a 0 byte read no longer results in EAGAIN but instead in APR_EOF which leads to HTTP/2 failures. For the changelog: Fix HTTP/2 failures when using OpenSSL 1.1.1. trunk patch: http://svn.apache.org/r1843954 2.4.x patch: svn merge -c 1843954 ^/httpd/httpd/trunk . +1: rjung, druggeri, rpluem
Don't claim "BIO dump follows" if it is not logged due to log level config.
make ssl_io_data_dump respect per-conn loglevel
add high trace level log messages for debugging buffering and write completion
* modules/ssl/ssl_engine_kernel.c (ssl_callback_SessionTicket): Fail if RAND_bytes() fails; possible per API, although not in practice with the OpenSSL implementation.
Fix typo in log message.
ap_add_common_vars(): use apr_pstrmemdup().
This avoids a transient replacement/restore of '?' by '\0' in r->filename.
Use 'ap_request_has_body()' instead of duplicating its implemenation.
The logic in 'ap_request_has_body()' is: has_body = (!r->header_only && (r->kept_body || apr_table_get(r->headers_in, "Transfer-Encoding") || ( (cls = apr_table_get(r->headers_in, "Content-Length")) && (apr_strtoff(&cl, cls, &estr, 10) == APR_SUCCESS) && (!*estr) && (cl > 0) ) ) ); So the test is slighly different from the original code. (but this looks fine to me)
This also has the advantage to avoid a redundant call to 'apr_table_get()' and to improve readability.
While at it, move the test '!r->expecting_100' a few lines above because it is cheap.
PR62368: Print the unparsed URI in AH03454
... to include r->args and get otherwise get as close to possible to what came in over the wire.