Commit Graph

4086 Commits (89c97b8cd8a4faf169965ec6383335d0c0a661ee)
 

Author SHA1 Message Date
Glenn Strauss 579045de84 [mod_openssl] issue error trace if < openssl 1.1.1 2 years ago
Glenn Strauss 454ecaa5f9 [TLS] rename ssl.verifyclient.ca-*file options
rename to reflect use for verifying client certificate
(old names are still accepted, but are discouraged)

ssl.ca-file     -> ssl.verifyclient.ca-file
ssl.ca-dn-file  -> ssl.verifyclient.ca-dn-file
ssl.ca-crl-file -> ssl.verifyclient.ca-crl-file
2 years ago
Glenn Strauss 325d89b99f [multiple] more reuse of http_date_time_to_str() 2 years ago
Glenn Strauss c41ebea4bb [build] fix zstd option in meson (fixes #3076)
(thx KimonHoffmann)

x-ref:
  "Fix zstd dependency handling in meson build"
  https://redmine.lighttpd.net/issues/3076
2 years ago
Glenn Strauss 82abd16dd7 [mod_proxy] send HTTP/1.0 to backend if no Host
send HTTP/1.0 request to backend if no Host header sent with request

(If Host header is present with an HTTP/1.0 request from client, then
 lighttpd can still make an HTTP/1.1 request to backends)
2 years ago
Glenn Strauss 20a68d7301 [core] vector.h tweaks 2 years ago
Glenn Strauss 7283c43566 [mod_webdav] limit mem use under extreme condition
limit memory use under extreme conditions (edge cases)
2 years ago
Glenn Strauss c6362e127f [mod_webdav] webdav_log_xml_response()
log XML response from chunkqueue instead of taking single buffer
(webdav.log-xml = "enable")

(prep for future changes)
2 years ago
Glenn Strauss 378bc0343f [mod_dirlisting] dir-listing.cache option
dir-listing.cache = ( "path" => "..."   # path to cache root
                      "max-age" => 15 ) # max age (default 15 sec)

Simple cache of directory listing.  Generating directory listing
on large directives can be expensive.  Cache listing for reuse.

This option is for convenience to improve the performance of
directory listings on busy servers, and requires very little
effort for web server admin to enable.

For even better performance on busy servers, the directory listings
could be (externally) generated into index.html files, and mod_indexfile
could be used instead of mod_dirlisting.  When directories are modified,
an external trigger could regenerate index.html.
2 years ago
Glenn Strauss 94359ac956 [mod_dirlisting] parse query string in javascript
parse (optional) query string in javascript to affect initial list sort
(which is also done in javascript)

This change allows the server-generated page to be cachable,
as the response is now independent of the query string.
2 years ago
Glenn Strauss fa4e2b87c5 [mod_dirlisting] upper limit on parallel dirlist
set upper limit of 1/16 max_conns for parallel dirlist
  (per lighttpd worker)
or else set 503 Service Unavailable with Retry-After: 2

attempt to avoid "livelock" scenarios or starvation of other requests

1/16 max_conns (default 85) is still a high arbitrary limit;
 and limit applies only to directories larger than DIRLIST_BATCH-2
 (DIRLIST_BATCH is currently 32)
2 years ago
Glenn Strauss 8d4da3392c [mod_dirlisting] read dir in pieces; less blocking
read dir in pieces, allowing server to do other work between reads

(avoid potentially blocking other requests for long periods of time
while reading a large directory)
2 years ago
Glenn Strauss 376aea0320 [mod_dirlisting] restructure and keep state
restructure into smaller subroutines and keep persistent state
2 years ago
Glenn Strauss 36e0772984 [mod_dirlisting] process dir in subrequest handler
(precursor to future possible enhancements)
2 years ago
Glenn Strauss 680e6b3bca [multiple] buffer_copy_path_len2() aggregate 2 years ago
Glenn Strauss 262561fae1 [core] ignore empty headers unless pseudo-headers
(thx daex)

(reported on IRC)

x-ref:
  "ignore empty headers unless HTTP/2 pseudo-headers"
  https://redmine.lighttpd.net/boards/2/topics/9720
2 years ago
Glenn Strauss 7a078f567a [core] mark debug path unlikely
mark debug path unlikely
remove redundant debug trace
2 years ago
Glenn Strauss 91b3b3bf90 [core] remove an excess check 2 years ago
Glenn Strauss 9ee17ae2bc [core] mark some chunk.h funcs attr cold 2 years ago
Glenn Strauss 3014a5f8c9 [core] mark select http_kv.[ch] funcs attr nonnull 2 years ago
Glenn Strauss cfc8eeb5a7 [core] mark select buffer.[ch] funcs attr nonnull 2 years ago
Glenn Strauss de40881a2e [core] define __attribute_nonnull__ 2 years ago
Glenn Strauss dc01487ea6 [multiple] use buffer_append_* aggregates
reduces the number of round-trips into some frequently-called routines
2 years ago
Glenn Strauss b4310877ac [core] config_vars_init()
separate func to init config var.CWD and var.PID
using stack for getcwd() result
2 years ago
Glenn Strauss e7464bab9b [core] buffer_append_* aggregates
buffer_append_str2()
buffer_append_str3()
buffer_append_iovec()
2 years ago
Glenn Strauss 82fbfcba15 [build] check for mempcpy() 2 years ago
Glenn Strauss 12acca1887 [core] short-circuit encoding if nothing to encode
short-circuit encoding strings and use memcpy() if nothing to encode
2 years ago
Glenn Strauss 4863c9a63c [multiple] pass len when copying constant strings 2 years ago
Glenn Strauss f608217955 [mod_ssi] use intermediate chunkqueue to aggregate
periodically flush intermediate chunkqueue to r->write_queue
to reduce occurrence of copying to reallocate larger chunk

use chunk_buffer to read ssi file
2 years ago
Glenn Strauss 7c8437a0ec [mod_ssi] shared code to wrap strftime() 2 years ago
Glenn Strauss 6d008a147e [mod_status] double-buffer large output to tmpfile 2 years ago
Glenn Strauss 4250de77d3 [mod_trigger_b4_dl] gdbm_reorganize once a day 2 years ago
Glenn Strauss a6d1dccad3 [multiple] strftime %F and %T
strftime %F for %Y-%m-%d, and %T for %H:%M:%S
2 years ago
Glenn Strauss f711207d5c [mod_accesslog] reformat numeric timestamp code 2 years ago
Glenn Strauss 8308915b4e [mod_accesslog] strftime %z for numeric timestamp 2 years ago
Glenn Strauss 069c0fff21 [mod_accesslog] reformat numeric timestamp 2 years ago
Glenn Strauss 4db5c1ec7b [mod_magnet] use http_chunk_* APIs
use http_chunk_* APIs in magnet_attach_content() for consistency
(and sending output to tempfiles if large)
2 years ago
Glenn Strauss 4eeff345b1 [mod_userdir] use 2-element cache
use 2-element cache, can be getpwnam() lookup is expensive

cache lifetime is 60 seconds
homedir paths are not expected to change quickly
2 years ago
Glenn Strauss be8ff83931 [core] buffer_append_strftime() perf annotations 2 years ago
Glenn Strauss 0ffb8167c1 [TLS] use stack for SSL_CLIENT_S_DN_* tag
(reduce use of r->tmp_buf in TLS modules)
2 years ago
Glenn Strauss 250ced26d8 [TLS] https_add_ssl_client_verify_err()
separate routine for printing client certificate verification error

more consistent SSL_CLIENT_M_SERIAL between modules
2 years ago
Glenn Strauss 0bc7e0a3e6 [mod_indexfile] reduce copying of base path 2 years ago
Glenn Strauss 347509261b [mod_userdir] use stat_cache_path_isdir() 2 years ago
Glenn Strauss 26f354cb37 [multiple] http_header APIs to reduce str copies 2 years ago
Glenn Strauss f83ff671fc [mod_dirlisting] limit buffer use for large dirs
send large dir listings to tempfiles
send large header and footers (readme) to tempfiles if XML-encoding

separate header and footer HTML generation from
directory read and HTML generation for dir and files

code reuse, cleanup
reduce some string copying for include file paths
2 years ago
Glenn Strauss 8dc663e86d [mod_cml] use cached time from log_epoch_secs 2 years ago
Glenn Strauss d8f8548fcb [core] use monotonic secs for piped loggers start
use monotonic secs for piped loggers start time
2 years ago
Glenn Strauss 76b9cb8717 [mod_ssi] inline some buffers in ssi plugin_data 2 years ago
Glenn Strauss 9c8b9ff010 [core] move special case for Content-Type CGI hdr
move special case for Content-Type CGI header to identify header with
tag rather than string comparison
2 years ago
Glenn Strauss 160baff923 [core] copy string and len directly from tmp_buf
copy string and len directly from tmp_buf without buffer_commit(tb, ...)
if tmp_buf contents are not used after the copy
2 years ago