replace mod_compress with mod_deflate in server.modules
mod_deflate is special-cased to not error out if module fails to load
(if missing, everything else continues to work without deflate feature)
(thx ultimator)
fix crash due to missing re-initialization of reused r->dst_addr_buf
x-ref:
"Segfaults after upgrade to version 1.4.70"
https://redmine.lighttpd.net/issues/3207
(thx fstelzer)
adjust optimization to fix use of posix_spawn() with some glibc vers,
as older versions rejected sigaction() SIG_DFL on some signals including
SIGKILL, SIGSTOP, and bits in signal mask set higher than NSIG
x-ref:
"include_shell not working on all platforms"
https://redmine.lighttpd.net/issues/3201
(thx desmana)
missing algo_hmac.c from static build
(since removal of mod_secdownload in lighttpd 1.4.68)
x-ref:
"static build fails due to missing algo_hmac"
https://redmine.lighttpd.net/issues/3203
(addendum to previous commit)
(lighttpd test confs set server.compat-module-load = "disable")
Note: a future release of lighttpd will build mod_h2 as a separate
module (not built-in) when lighttpd is built with shared modules (.so)
(addendum to previous commit)
(lighttpd test confs set server.compat-module-load = "disable")
Note: a future release of lighttpd will build mod_h2 as a separate
module (not built-in) when lighttpd is built with shared modules (.so)
modify use of posix_spawnattr_setsigdefault() on __linux__
Subprocesses (CGI scripts and backends FastCGI, SCGI, proxy, etc)
which spawned their own children and accidentally relied on inheriting
SA_RESTART on SIGCHLD from lighttpd will now have to set that flag
themselves, if desired.
From a quick survey:
- bash sets SA_RESTART on SIGCHLD.
- Perl and Python unconditionally reset signals.
(Other interpreters are expected to do so as well.)
use posix_spawnattr_setcwd_np() (QNX Neutrino 7.1 or later)
NOTE: HAVE_POSIX_SPAWNATTR_SETCWD_NP *is not* currently checked and set
in the builds, so must be manually defined for build in order to enable.
limit KTLS attempts to linux kernel version >= 4.17
or to FreeBSD 13 and kern.ipc.tls.enable
(avoid setsockopt() if KTLS is not enabled in running kernel)
always decr fd count in connection_close()
always decr fd count in fdevent_sched_run()
Error return value from close() should be used for diagnostics and
recovery, but the state of the file descriptor is unspecified by POSIX.
On most systems, it is invalid to redo close(). (Linux 'man 2 close'
suggests that HP-UX is an outlier, and that a future POSIX standard
update will specify the behavior for the file descriptor to be closed)
EBADF should not happen in those funcs for lighttpd since those should
be the only locations in lighttpd where those fds are closed.
.text segment was slightly over (2) 4k pages;
tweak code to be slightly less than (2) 4k pages
(when compiled optimized -O2)
(likely smaller when compiled -Os)