create API in chunk.[ch] for writing a chunk to an fd
(pull similar code from mod_cgi and mod_webdav)
This new API is intended for use on request body input, which is
written to size-limited temporary files controlled by lighttpd and
written to files or pipes.
(network_backend_write() is for writing chunkqueues to sockets)
FreeBSD provides an API similar to Linux copy_file_range()
but uses off_t instead of loff_t in the syscall.
off_t is equivalent to off64_t when lighttpd is built with LFS
(and lighttpd is built with LFS enabled by default)
OpenBSD crypt() does not support (insecure) crypt-des or crypt-md5
(The password used in the tests and lighttpd.htpasswd is crypt-des.
Something else could be used so that the tests can execute,
though that something might be different on different platforms.)
sys-time.h - localtime_r,gmtime_r macros if needed
provide rudimentary localtime_r() and gmtime_r() if not present
(wraps localtime() and gmtime() funtions, but are not thread-safe since
they do not take a lock around access to localtime() and gmtime())
(import from one of my development branches from 2015)
fix large memory usage for large file downloads from dynamic backends
reuse or release large memory chunks
"Memory Growth with PUT and full buffered streams"
compatibility to compile with earlier wolfSSL versions
compile-tested back to wolfSSL tag v3.14.0-stable
configured with (possibly extra flags)
./configure --enable-opensslextra --enable-opensslall --enable-sni \
--enable-lighty --enable-stunnel --enable-nginx --enable-haproxy
Functionality has not been tested!
Please consider using the latest stable release of wolfSSL.
fix decoding chunked from backend
truncate response and error out if backend sends excess data
after chunked encoding
"Too much content with HTTP/2.0"
replace /* fall through */ comment with __attribute_fallthrough__ macro
Note: not adding attribute to code with external origins:
so to avoid warnings, may need to compile with -Wno-implicit-fallthrough
fix array_copy_array() sorted
(current use appears to be only on value lists; not user-visible issue)
Some time back, sorted was a set of indexes into data,
and therefore sorted could be copied when copying array.
Now that sorted is a list of pointers, the sorted list
must be rebuilt. If copied, it continued to point to
(data_unset *) from the original src array, not the dst array.