Glenn Strauss
8cc189f4c6
[stat_cache] FAM: improve monitoring, cache 16 sec
...
improve FAM monitoring to use reference counting in internal cache
revalidate entries upon use after 16 sec to recover from missed events
(see comments in commit for more details about limitations)
4 years ago
Glenn Strauss
f56800e86a
[stat_cache] no longer stat() and open() for stat
...
do not open file in stat_cache_get_entry()
no longer stat() followed by open() and close() just for stat()
callers should open() file to validate readability (and then reuse fd)
4 years ago
Glenn Strauss
44156bbe81
[multiple] open target file earlier in some cases
...
open target file earlier in some cases to validate readability
4 years ago
Glenn Strauss
470a692211
[core] http_chunk_append_file_fd()
4 years ago
Glenn Strauss
8f0adfe043
[core] emit trace using path before clearing path
4 years ago
Glenn Strauss
61e8d799f0
[scons] adjustment for static build under CentOS
...
x-ref:
"Trying to compile under CentOS 6.10"
https://redmine.lighttpd.net/boards/2/topics/8572
4 years ago
Glenn Strauss
338c73fd28
[core] use high precision stat timestamp in etag
...
use high precision stat timestamp (on systems where available) in etag
4 years ago
Glenn Strauss
311f258ab3
[mod_webdav] update stat_cache after file mod
...
update stat_cache entries after file modifications (PUT)
invalidate stat_cache entries after file movement (COPY MOVE DELETE)
4 years ago
Glenn Strauss
57470365a2
[stat_cache] interfaces to invalidate entries
4 years ago
Glenn Strauss
f89f9191f4
[stat_cache] FAM: funcs to invalidate entries
4 years ago
Glenn Strauss
c7eaa502ec
[stat_cache] FAM: ignore event with no valid match
4 years ago
Glenn Strauss
18faa0910c
[stat_cache] FAM: check hash collision before add
...
skip monitoring new entry if there is a hash collision in stat_cache
data structure associated with FAM
4 years ago
Glenn Strauss
8772e85cea
[stat_cache] FAM: ignore follow-symlink config
...
no distinction needs to be made whether or not server.follow-symlink set
4 years ago
Glenn Strauss
1971da13db
[stat_cache] FAM: improve handling modified file
4 years ago
Glenn Strauss
38ce790657
[stat_cache] FAM: use entry hash index as userdata
...
Upon receipt of FAM event, validate that entry exists in splaytree
instead of blindly accessing memory through the pointer returned in
userdata by FAM
4 years ago
Glenn Strauss
a3d171526a
[stat_cache] FAM: check FAMNextEvent() return code
4 years ago
Glenn Strauss
cc49703372
[stat_cache] FAM: reduce string copying
4 years ago
Glenn Strauss
a50b72c356
[stat_cache] remove splaytree ins/del debug code
...
remove debug code around for splaytree_insert() and splaytree_delete()
in stat_cache.c
4 years ago
Glenn Strauss
47d006ae47
[stat_cache] pass age param for stat cache cleanup
4 years ago
Glenn Strauss
baa5f04335
[stat_cache] store entries without trailing slash
...
(no more duplication of dir entries with and without trailing slash)
4 years ago
Glenn Strauss
020a83c265
[stat_cache] separate symlink pol from data struct
...
separate symlink polily from internal data structures
no more dup entires in splaytree for allowing/disallowing symlinks
hash name to provided len
4 years ago
Glenn Strauss
73bfee6308
[stat_cache] separate func for symlink policy chk
...
Note: historical ToC-ToU race condition still exists in implementation
server.follow-symlink = "disable" is not recommended (default: "enable")
4 years ago
Glenn Strauss
5ac92dca08
[mod_webdav] check If-None-Match ( #1818 )
...
x-ref:
"add RFC-compliant LOCK support to mod_webdav"
https://redmine.lighttpd.net/issues/1818
4 years ago
Glenn Strauss
aacdd3da02
[mod_webdav] special-case If: (<DAV:no-lock>)
...
(recognize <DAV:no-lock>, but supporting logic is limited)
4 years ago
Glenn Strauss
ab005809e1
[mod_webdav] disable elftc_copyfile() on FreeBSD
...
disable elftc_copyfile() on FreeBSD
until libelftc added to SCons static build
4 years ago
Glenn Strauss
278c42abc5
[mod_webdav] platform portability fixes
4 years ago
Glenn Strauss
d4b726bf24
[mod_webdav] provide ETag in more responses
...
When file is already open, fstat() and provide ETag,
e.g. in PUT requests and new LOCK requests (not LOCK refresh)
4 years ago
Glenn Strauss
d334ee5c2f
[mod_webdav] deprecated unsafe partial PUT compat
...
RFC 7231 forbids partial PUT. However, historical versions of
lighttpd mod_webdav did provide this (mis-)feature. Therefore,
provide *deprecated* unsafe partial PUT support for compatibility
with historical lighttpd mod_webdav (prior to mod_webdav rewrite),
but require new config option to enable this compatible behavior:
webdav.opts = ( "deprecated-unsafe-partial-put" => "enable" )
The partial PUT support implemented by historical lighttpd mod_webdav
makes no effort to account for shrinkage or growth of range replaced.
The request body is splat into the *existing* file at the offset
provided which is quite unsafe and can cause corruption in data sent
to concurrent download requests.
Use of this (mis-)feature is discouraged, and support may be removed
in the future, without any further notice.
4 years ago
Glenn Strauss
eee29b65e5
[mod_webdav] check If-Match, If-Unmodified-Since ( #1818 )
...
x-ref:
"add RFC-compliant LOCK support to mod_webdav"
https://redmine.lighttpd.net/issues/1818
4 years ago
Glenn Strauss
3111e24b71
[mod_webdav] clean up resources after do{}while(0)
4 years ago
yangfl
4af0f97f14
[mod_webdav] fix misbehavior on blank nodes in PROPPATCH
...
github: #97
x-ref:
https://github.com/lighttpd/lighttpd1.4/pull/97
4 years ago
yangfl
6962fc2a5a
[mod_webdav] fix uuid detection macro
...
github: #97
x-ref:
https://github.com/lighttpd/lighttpd1.4/pull/97
4 years ago
Glenn Strauss
993cb545d8
[mod_webdav] surround Lock-Token with "<...>"
...
(thx yangfl)
github: #97
x-ref:
https://github.com/lighttpd/lighttpd1.4/pull/97
4 years ago
Glenn Strauss
95aa2c178d
[core] 200 for OPTIONS /non-existent/path HTTP/1.1 ( fixes #2939 )
...
200 for OPTIONS /non-existent/path HTTP/1.1 when a module,
such as mod_webdav, has set Allow response header
x-ref:
"OPTIONS should return 2xx status for non-existent resources if Allow is set"
https://redmine.lighttpd.net/issues/2939
4 years ago
Glenn Strauss
50aae03c31
[mod_webdav] major rewrite ( fixes #1818 )
...
(occurred 3 years ago on experimental branch, and now ported forward)
robustness and performance improvements, including atomic updates on
individual files (e.g. for PUT, COPY, MOVE)
exclusive locks are fully supported
shared locks are partly supported
x-ref:
"add RFC-compliant LOCK support to mod_webdav"
https://redmine.lighttpd.net/issues/1818
4 years ago
Glenn Strauss
a15f40a569
[core] replace open() with fdevent_open_cloexec()
...
fdevent_open_cloexec() opens files O_BINARY for consistency,
and with O_NONBLOCK, so that the server will not block if the
target file to open is a fifo.
4 years ago
Glenn Strauss
f1e9bcb08a
[core] new worker_init hook to follow parent fork
4 years ago
Glenn Strauss
4183e723ce
[core] log_error, log_perror using printf-like fmt
4 years ago
Glenn Strauss
cbad7517c8
[core] struct log_error_st for error logging
4 years ago
Glenn Strauss
9eead7db7c
[core] __attribute__((format ...))
4 years ago
Glenn Strauss
0dccda28ad
[core] add const to some etag prototypes
4 years ago
Mohammed Sadiq
6a988bb0d0
[multiple] cleaner calloc use in SETDEFAULTS_FUNC
...
github: closes #99
x-ref:
"cleaner calloc use in SETDEFAULTS_FUNC"
https://github.com/lighttpd/lighttpd1.4/pull/99
4 years ago
Glenn Strauss
599b4f05c8
[core] fix 1.4.52 regression in mem use with POST ( fixes #2948 )
...
(thx rgenoud)
x-ref:
"[regression][Bisected] lighttpd uses way more memory with POST since 1.4.52"
https://redmine.lighttpd.net/issues/2948
4 years ago
Glenn Strauss
e757978497
[core] remove repeated slashes in http-parseopts
...
remove repeated slashes in server.http-parseopts
with url-path-dotseg-remove, including leading "//"
(prior to this patch, leading "//" was skipped)
4 years ago
Glenn Strauss
32120d5b8b
[core] fix abort in http-parseopts ( fixes #2945 )
...
fix abort in server.http-parseopts with url-path-2f-decode enabled
(thx stze)
x-ref:
"Security - SIGABRT during GET request handling with url-path-2f-decode enabled"
https://redmine.lighttpd.net/issues/2945
4 years ago
Glenn Strauss
107fa1f282
[mod_wstunnel] fix ping-interval for big-endian ( fixes #2944 )
...
fix wstunnel.ping-interval for big-endian architectures
(thx ste_p_james)
x-ref:
"[patch] wstunnel.ping-interval ineffective"
https://redmine.lighttpd.net/issues/2944
4 years ago
Glenn Strauss
b135b4d24d
[core] clear FDEVENT_RDHUP if no POLLRDHUP
...
(fix for poll() on FreeBSD 11)
4 years ago
Glenn Strauss
f2ac4cdfc5
[core] off_t upload_temp_file_size
4 years ago
Glenn Strauss
a78404cfbf
[core] fdevent_mkstemp_append() (shared)
4 years ago
Glenn Strauss
97d4c11ba6
[core] __attribute__((fallthrough)) for GCC 7.0
4 years ago