summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [core] quiet lemon.c clang C2x warningsHEADpersonal/gstrauss/mastermasterGlenn Strauss2023-05-151-9/+9
|
* [core] check getaddrinfo EAI_ADDRFAMILY w/ glibcGlenn Strauss2023-05-141-1/+1
| | | | | | | | check getaddrinfo() error EAI_ADDRFAMILY only with __GLIBC__ defined x-ref: "www/lighttpd: fix listening on IPv6 and IPv4 addresses" https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271335
* [core] _WIN32 quiet compiler warnings 32-bit buildGlenn Strauss2023-05-136-11/+22
|
* [core] fix new use of posix_spawn with some glibc (fixes #3201)Glenn Strauss2023-05-111-4/+4
| | | | | | | | | | | | (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
* [mod_magnet] fix static build using autoconf (fixes #3203)Glenn Strauss2023-05-111-2/+1
| | | | | | | | | | | (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
* [mod_h2] HTTP/2 separate module; no longer builtinGlenn Strauss2023-05-104-15/+4
| | | | HTTP/2 separate module; no longer built-in to lighttpd executable
* [core] treat mod_h2 as built-in module (for now)lighttpd-1.4.70Glenn Strauss2023-05-101-1/+1
| | | | | | | | (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)
* [core] treat mod_h2 as built-in module (for now)Glenn Strauss2023-05-101-2/+6
| | | | | | | | (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)
* [core] treat mod_h2 as built-in module (for now)Glenn Strauss2023-05-103-9/+2
| | | | | 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)
* [core] fdevent_load_file() check if limit exceededGlenn Strauss2023-05-091-1/+1
| | | | currently used w/ power-2 limit values, but add check >= if not power-2
* [mod_dirlisting] _WIN32 compile fixGlenn Strauss2023-05-081-1/+0
|
* [core] modify use of posix_spawnattr_setsigdefaultGlenn Strauss2023-05-081-0/+9
| | | | | | | | | | | | | | 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.)
* [core] Mac OS POSIX_SPAWN_CLOEXEC_DEFAULTGlenn Strauss2023-05-081-0/+41
| | | | use Mac OS POSIX_SPAWN_CLOEXEC_DEFAULT where available
* [core] posix_spawn_file_actions_addclosefrom_np()Glenn Strauss2023-05-084-0/+15
| | | | use posix_spawn_file_actions_addclosefrom_np() where available
* [core] posix_spawnattr_setcwd_np() on QNXGlenn Strauss2023-05-071-2/+12
| | | | | | | 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.
* [mod_openssl] check kernel support for KTLSGlenn Strauss2023-05-071-6/+17
| | | | | | | 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)
* [core] fix HTTP/2 use of http_response_loop()Glenn Strauss2023-05-071-4/+8
| | | | (bug recently reached master branch; not released)
* [mod_openssl] FreeBSD: check "kern.ipc.tls.enable"Glenn Strauss2023-05-071-0/+24
| | | | | FreeBSD: check sysctl "kern.ipc.tls.enable" before attempting KTLS (avoid setsockopt() if KTLS is not enabled in running FreeBSD kernel)
* [core] quiet coverity warningGlenn Strauss2023-05-051-1/+3
|
* [mod_dirlisting] _WIN32 fix fstat() after close()Glenn Strauss2023-05-051-2/+13
| | | | | | fix fstat() after close(); revert part of 699e0e46 (bug on master branch; not released) (found by coverity static analysis)
* [mod_openssl] SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILEGlenn Strauss2023-05-051-0/+3
| | | | enable SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE if available
* [build] ifdef _WIN32 before include fs_win32.hGlenn Strauss2023-05-042-3/+3
| | | | | | | revert previous commit adding fs_win32.h to Makefile.am hdrs ifdef _WIN32 check before include fs_win32.h so that other platforms do not have to care
* [autoconf] include fs_win32.h in hdrs for dpkgGlenn Strauss2023-05-041-1/+1
|
* [scons] avoid dup mod_h2 module in static buildGlenn Strauss2023-05-041-0/+2
|
* [mod_cgi] reset upload_temp_file_size in CGI closeGlenn Strauss2023-05-031-2/+6
| | | | reset upload_temp_file_size in cgi_connection_close if p->tempfile_accum
* [mod_cgi] reuse fd already opened to /dev/nullGlenn Strauss2023-05-031-4/+11
| | | | | | lighttpd STDIN_FILENO is reopened to /dev/null at server startup Let CGI inherit fd STDIN_FILENO when (0 == r->reqbody_length)
* [mod_cgi] doubly-linked list of CGI pidsGlenn Strauss2023-05-031-0/+2
| | | | (issue in lighttpd 1.4.60 - 1.4.69)
* [build] move some files to call from modulesGlenn Strauss2023-05-034-9/+11
| | | | (e.g. support for HTTP/2 module mod_h2)
* [core] move some shared funcs to call from modulesGlenn Strauss2023-05-032-38/+40
| | | | (e.g. support for HTTP/2 module mod_h2)
* [meson] build fix for builtin_modsGlenn Strauss2023-05-031-2/+1
|
* [core] _WIN32 compile fixGlenn Strauss2023-05-031-1/+1
|
* [core] return pid_t from fdevent_waitpid()Glenn Strauss2023-05-034-7/+8
|
* [mod_mbedtls] check MBEDTLS_DEBUG_C for debug funcGlenn Strauss2023-05-031-0/+2
| | | | wrap mbedtls_debug_set_threshold() in #ifdef for MBEDTLS_DEBUG_C
* [core] always decr fd count upon socket close()Glenn Strauss2023-05-032-5/+5
| | | | | | | | | | | | | | 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.
* [mod_cgi] cgi_create_err() cold err handling funcGlenn Strauss2023-05-031-73/+64
| | | | | collect error handling code for cgi_create_env() (for code reuse and consistency; also reduces code size)
* [mod_cgi] do not issue trace if CGI closes inputGlenn Strauss2023-05-031-0/+8
| | | | It is not necessarily an error for CGI to close its input early
* [mod_cgi] reduce code sizeGlenn Strauss2023-05-031-9/+8
| | | | | | | .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)
* [mod_cgi] move fd count to cgi_create_env()Glenn Strauss2023-05-031-8/+5
|
* [core] rename http_kv funcs, reorder http_versionsGlenn Strauss2023-05-036-77/+48
| | | | | rename http_kv funcs for consistency ("http_" prefix) reorder http_versions[]
* [core] noinline stat_cache_sptree_find()Glenn Strauss2023-05-031-0/+1
|
* [mod_proxy] match "map-host-response" "-" w/ HostGlenn Strauss2023-05-031-1/+1
| | | | | | | match "map-host-response" with authority provided in (request) Host for "-" in response map and when no other "map-host-request" mapped request to a different authority. This is a bit friendlier for use with bidirectional https-remap.
* [TLS] $SERVER["socket"] inherit global ssl.engineGlenn Strauss2023-05-035-4/+33
| | | | | | | | | | | | | | | | | | $SERVER["socket"] inherits ssl.engine = "enable" from global scope fixes issue of TLS-enabled socket, but missing config, if ssl.engine = "enable" in global scope and $SERVER["socket"] does not contain ssl.engine = "enable" e.g. default TLS-enabled, and explicitly disabled on specific sockets server.port = 443 ssl.engine = "enable" ssl.pemfile = ... ssl.privkey = ... $SERVER["socket"] == ":80" { ssl.engine = "disable" } $SERVER["socket"] == "[::]:80" { ssl.engine = "disable" } $SERVER["socket"] == " :443" { } $SERVER["socket"] == "[::]:443" { }
* [core] noinline connection shutdown, resetGlenn Strauss2023-05-031-0/+5
| | | | | slightly reduces code size for less-hot code better collects shutdown process for r->http_version > HTTP_VERSION_1_1
* [core] h1.[ch] collect some HTTP/1.x specific codeGlenn Strauss2023-05-0311-935/+987
|
* [mod_auth] warn if auth.require path never matchesGlenn Strauss2023-05-031-0/+12
| | | | warn if auth.require path never matches due to an earlier, shorter path
* [meson] check FORCE_{WOLFSSL,MBEDTLS}_CRYPTOGlenn Strauss2023-05-031-3/+7
| | | | | | | check FORCE_WOLFSSL_CRYPTO and FORCE_MBEDTLS_CRYPTO when choosing cryptolib todo: should also apply to lighttpd autoconf, CMake, SCONS builds
* [mod_cgi] comment about caching target dirnameGlenn Strauss2023-05-031-0/+17
| | | | | | | comment code about caching target dirname using stat_cache In simple performance tests, using stat_cache here makes little difference, as the overhead of process creation is orders of magnitude larger.
* [core] use posix_spawn() where availableGlenn Strauss2023-05-034-1/+108
| | | | | | | | | | | | | | | | | | | | | | | | | use posix_spawn() where available use posix_spawn_file_actions_addfchdir_np() where available Using posix_spawn() reduces initial execution overhead of CGI programs; posix_spawn() is often faster than application code wrapping and calling traditional fork(),execve(). (history: fdevent.c posix_spawn code based on fdio.c:fdio_ipc_spawn() from 2015 on one of my unpublished branches. The inability to chdir() delayed inclusion in lighttpd, as the CGI specification says: "The current working directory for the script SHOULD be set to the directory containing the script." e.g. chdir() to target program directory before CGI execution) posix_spawn_file_actions_addfchdir_np() is a new(er) extension supported in glibc 2.29+, musl libc, FreeBSD ≥ 13.1, macOS ≥ 10.15 according to https://cygwin.com/pipermail/cygwin/2023-April/253505.html https://cygwin.com/pipermail/cygwin/2023-April/253526.html https://sourceware.org/bugzilla/show_bug.cgi?id=17405 POSIX Issue 8 plans to include posix_spawn_file_actions_addfchdir(): https://www.austingroupbugs.net/view.php?id=1208
* [build] _WIN32 shared dll build (autotools, cmake)Glenn Strauss2023-05-0310-3/+41
| | | | | | | | | | | | | | | | | | | | | There are likely better and cleaner ways to do this; patches welcome. _WIN32 symbol imports and exports MS Visual Studio (_MSC_VER) does not appear to export global data symbols even when exporting all functions. Annotating any symbols with __declspec(dllexport) in any translation unit appears to change default dll symbol implict export behavior. Currently, src/Makefile.am and CMakeLists.txt take different approaches (implib versus linking against executable which has exported symbols) x-ref: (improved solutions might possibly be constructed using these docs) https://sourceware.org/binutils/docs/ld/WIN32.html https://cmake.org/cmake/help/latest/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html https://stackoverflow.com/questions/225432/export-all-symbols-when-creating-a-dll
* [build] _WIN32 __declspec(dllexport) *_plugin_initGlenn Strauss2023-05-0349-0/+65
| | | | _WIN32 __declspec(dllexport) on mod_*_plugin_init()