| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
(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
|
|
|
|
| |
HTTP/2 separate module; no longer built-in to lighttpd executable
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
(e.g. support for HTTP/2 module mod_h2)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
open(), stat(), mkdir() on UTF-8 paths
lighttpd provides large file support and 64-bit time,
so provide override to use _stati64() (and _wstati64())
Additionally, provide custom function to support stat on UTF-8 path,
which must first be converted to wide-char and _wstati64(),
since _stati64() is naive and does not properly support UTF-8.
|
|
|
|
| |
use -lws2_32 instead of -lwsock32
|
| |
|
| |
|
|
|
|
| |
(selective implementations; not complete)
|
|
|
|
| |
_WIN32 FindFirstFile(), FindNextFile(), FindClose()
|
|
|
|
|
|
|
| |
no lstat()
no S_IFSOCK
no S_ISSOCK()
...
|
|
|
|
|
|
| |
(mod_h2 module now available as build artifact of shared lib build,
but is not yet used by lighttpd, in order to give package maintainers
a chance to update release packages to contain mod_h2)
|
|
|
|
|
|
|
|
|
| |
skip building separate modules for built-in modules
Small modules with minimal dependencies are now built-in to lighttpd.
All 12 of these modules have a memory footprint that is approximately
the same as 1 single module built as a .dll due to mandatory minimum
binary sections and memory page sizes (4k each).
|
|
|
|
|
|
|
|
|
| |
chmod u+w configparser.c for lemon
configparser.c might be created mode 444 and then a subsequent
repeat call to lemon will fail EACCES
This fixes that scenario in top level ./packdist.sh script.
|
| |
|
| |
|
| |
|
|
|
|
| |
(no longer used at the moment)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In dynamic build of lighttpd, at runtime each loaded lighttpd module .so
takes at least (5) 4k memory pages on x86_64. That is at least 20k per
module. Building 10 small core modules into lighttpd adds less than 16k
.text total, and adding mod_fastcgi and mod_scgi totals less than 20k
.text (plus an extra 4k .rodata page). The end result is that memory
usage is almost the same if only mod_staticfile is used, and 20k or so
is saved for each additional module used if among those built into
lighttpd executable.
For now, the standalone .so modules continue to be built, even though
not used by the lighttpd executable. This is done in order to give
distros time to update packaging scripts and transition to not
expecting the builtin module artifacts to be produced or installed as
part of the distro lighttpd package.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
remove deprecated modules:
mod_evasive
mod_secdownload
mod_uploadprogress
mod_usertrack
These scheduled lighttpd behavior changes have been announced over
the past year:
* Continue gradual deprecation of "mini-application" lighttpd modules
for which mod_magnet lua implementations are better and more flexible.
Please post on lighttpd forums to share feedback if you use these modules.
Forums: https://redmine.lighttpd.net/projects/lighttpd/boards
* Deprecated: mod_evasive has been removed.
mod_evasive can be replaced by mod_magnet and a few lines of lua:
Replacement: https://wiki.lighttpd.net/ModMagnetExamples#lua-mod_evasive
https://wiki.lighttpd.net/AbsoLUAtion#Fight-DDoS
https://wiki.lighttpd.net/AbsoLUAtion#Mod_Security
* Deprecated: mod_secdownload has been removed.
mod_secdownload can be replaced by mod_magnet and a few lines of lua:
Replacement: https://wiki.lighttpd.net/ModMagnetExamples#lua-mod_secdownload
mod_secdownload historically uses insecure MD5 though SHA1, SHA256 available
* Deprecated: mod_uploadprogress has been removed.
mod_uploadprogress can be replaced by mod_magnet and a few lines of lua:
Replacement: https://wiki.lighttpd.net/ModMagnetExamples#lua-mod_uploadprogress
* Deprecated: mod_usertrack has been removed.
mod_usertrack can be replaced by mod_magnet and a few lines of lua:
Replacement: https://wiki.lighttpd.net/ModMagnetExamples#lua-mod_usertrack
mod_usertrack historically uses insecure MD5.
|
| |
|
| |
|
|
|
|
|
| |
(future: might rename plugin.c -> plugins.c since the functions
contained within are all plugins_*())
|
|
|
|
| |
wrap system setjmp or compiler C try/catch mechanism
|
|
|
|
|
|
| |
configure --with-libdeflate option to use libdeflate
(must also configure --enable-mmap for mod_deflate to use libdeflate
on input files larger than 64kB; libdeflate not used on files <= 64kB)
|
|
|
|
|
| |
x-ref:
https://wiki.lighttpd.net/Docs_ConfigurationOptions#Deprecated
|
| |
|
|
|
|
|
|
| |
combine common components tests into test_common.c
combine into a single executable to reduce compilation/link redundancy
|
| |
|
| |
|
|
|
|
| |
combine into a single executable to reduce compilation/link redundancy
|
|
|
|
| |
isolate this ancient relic
|
| |
|
|
|
|
|
| |
(Instead, workaround added for libtool)
(There must be better ways to do this, but I don't know them right now)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
de-dup file and piped loggers for error logs and access logs
x-ref:
"RFE: de-dup file and piped loggers"
https://redmine.lighttpd.net/issues/3101
|
|
|
|
| |
code move and rename fdevent_*_logger_*() to fdlog_*()
|
|
|
|
|
|
| |
also remove some now-redundant tests from request.t
and reduce scripts and directories under tests
(because automake is sloooow and the fewer dirs, the better)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lighty.c.md("algo", "data")
lighty.c.hmac("algo", "secret", "data")
"algo" can be one of: "md5", "sha1", "sha256", "sha512"
(as long as lighttpd compiled w/ crypto lib supporting those algorithms)
lighty.c.digest_eq("digest1", "digest2")
- performs a timing-safe, case-insensitive comparison of two hex digests
- "digest1" and "digest2" are hex strings (of binary digests)
- returns boolean true or false
lighty.c.secret_eq("data1", "data2")
- performs a timing-safe comparison of two strings
(and attempts to hides differences in string lengths)
- "data1" and "data2" are strings
- returns boolean true or false
lighty.c.time()
- cached time(); seconds since 1 Jan 1970 00:00:00 GMT
(faster than os.time())
lighty.c.rand()
- generate pseudo-random number
Note: the "lighty.c.*" namespace is EXPERIMENTAL / UNSTABLE
In the future, these may be removed, altered, or moved to a different
namespace.
|
|
|
|
|
|
|
|
|
|
|
|
| |
merge connection_list_append() into connection_fdwaitqueue_append()
(not converted to singly-linked-list since fdwaitqueue is not expected
to be used during normal operation (except extreme overload condition),
so use allocated list of pointers (allocated when needed) instead of
adding ptr member to (every) allocated struct connection)
remove connections-glue.c
remove inclusion of connections.h by non-base files
|
|
|
|
| |
move some tests from tests/request.t to src/t/test_mod_staticfile.c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(mod_auth_api.c would be part of mod_auth.c
and mod_vhostdb_api.c would be part of mod_vhostdb.c
if not for MacOS)
MacOS modules can link against .dylib, but not against other modules
MacOS link with -module produces a .so, which lighttpd uses
MacOS link without -module procudes a .dylib,
but name *must* have prefix "lib...",
which lighttpd "mod_*" do not have.
Other lighttpd build configs (CMake, SCONS, meson) might not work
on MacOS. Patches (which do not make a huge mess of things) welcome.
|
|
|
|
|
| |
algo_hmac.c used only with mod_secdownload,
so include algo_hmac.c in mod_secdownload instead of lighttpd executable
|