Commit Graph

2843 Commits

Author SHA1 Message Date
Glenn Strauss d28bac32fe [multiple] reduce code dup in list resizing
reduce code duplication in list resizing
realloc() of NULL ptr has behavior similar to malloc()

Note that if initial size == 0, then code used to adjust size
must be += x to ensure the size is non-zero for reallocation.
(Multiplying 0 * x, e.g. power-2 resizing, will result in 0.)
2019-02-12 22:36:04 -05:00
Glenn Strauss 31b546e367 [core] fix gw_backend spelling of directive in err
fix gw_backend spelling of bin-path directive in error message
2019-02-11 11:53:07 -05:00
Glenn Strauss 74b18c385c [core] no keep-alive if POLLRDHUP,empty read queue
send Connection: close if POLLRDHUP received and read queue is empty
2019-02-10 22:15:59 -05:00
Glenn Strauss 9948537721 [core] discard oversized trailers
x-ref:
  "PVS-Studio Analysis Results"
  https://redmine.lighttpd.net/boards/3/topics/8459
  http://www.fly-server.ru/pvs-studio/lighttpd/
2019-02-10 20:47:19 -05:00
Glenn Strauss b2c18f480d [mod_auth] minor: adjust config validation
x-ref:
  "PVS-Studio Analysis Results"
  https://redmine.lighttpd.net/boards/3/topics/8459
  http://www.fly-server.ru/pvs-studio/lighttpd/
2019-02-10 20:47:19 -05:00
Glenn Strauss 25bb4406fa [mod_deflate] honor request for x-gzip, x-bzip2
honor request for x-gzip, x-bzip2 if gzip, bzip2 not requested

x-ref:
  "PVS-Studio Analysis Results"
  https://redmine.lighttpd.net/boards/3/topics/8459
  http://www.fly-server.ru/pvs-studio/lighttpd/
2019-02-10 20:47:19 -05:00
Glenn Strauss 859c9ae586 [multiple] minor: remove duplicated conditions
x-ref:
  "PVS-Studio Analysis Results"
  https://redmine.lighttpd.net/boards/3/topics/8459
  http://www.fly-server.ru/pvs-studio/lighttpd/
2019-02-10 20:26:58 -05:00
Glenn Strauss daa5f7c576 [mod_accesslog] attempt to reconstruct req line
cease http_request_parse_reqline() unconditionally copying request line,
as request line is currently used only by mod_accesslog 'r' format
2019-02-10 03:10:11 -05:00
Glenn Strauss 950832af67 [core] RFC7230 HTTP-version parse 2019-02-10 02:57:09 -05:00
Glenn Strauss 9149b56418 [core] get_http_method_key() match by strlen first 2019-02-09 16:16:20 -05:00
Glenn Strauss b9a37291cb [core] lift code out of request line parse loop 2019-02-09 15:48:05 -05:00
Glenn Strauss e5d61e9a5f [core] http_request_parse() mark error paths cold 2019-02-09 14:30:00 -05:00
Glenn Strauss e0a35b75c0 [core] mark log_error_write*() funcs cold 2019-02-09 00:06:10 -05:00
Glenn Strauss 23b0d867c5 [core] replace con->response.keep_alive
set con->keep_alive = 0 to indicate backend request to close connection
2019-02-08 23:18:36 -05:00
Glenn Strauss 25185d1de0 [core] pass req hdrs buffer to http_request_parse 2019-02-08 22:49:46 -05:00
Glenn Strauss 7493d628b9 [core] prefer buffer_caseless_compare()
prefer buffer_caseless_compare() to strcasecmp()
2019-02-08 22:49:46 -05:00
Glenn Strauss 7f8fd8ad09 [core] make parse_request,request.request same buf 2019-02-08 22:49:46 -05:00
Glenn Strauss d7ad5819e6 [core] copy request only if might need for logging
copy request header only if we may need to log it upon error
2019-02-08 22:49:46 -05:00
Glenn Strauss a620f80b77 [core] log_request_header_on_error in one place 2019-02-08 22:49:46 -05:00
Glenn Strauss 9ab5469365 [core] parse request in connection_read_header() 2019-02-08 22:49:46 -05:00
Glenn Strauss 8426b94161 [core] perf: optimize connection_read_header() 2019-02-07 01:17:47 -05:00
Glenn Strauss 21afabb8f8 [core] helper funcs for connection_state_machine()
carve connection_state_machine() into separate functions per state
2019-02-04 21:50:53 -05:00
Glenn Strauss 9e55fd72b5 [core] quickly clear request buffer for reuse 2019-02-04 20:00:47 -05:00
Glenn Strauss 79aa8613e1 [core] store joblist pointer on stack 2019-02-04 19:59:51 -05:00
Glenn Strauss b8532fe073 [mod_staticfile] search ext array if not empty 2019-02-04 03:01:33 -05:00
Glenn Strauss c8f9658536 [core] remove server.h 2019-02-04 03:01:33 -05:00
Glenn Strauss aa2d0fb087 [core] srv->max_fds_lowat and srv->max_fds_hiwat 2019-02-04 03:01:33 -05:00
Glenn Strauss 653b0dac7c [core] fdevent_process()
process fdevents in fdevent.c
2019-02-04 03:01:33 -05:00
Glenn Strauss aa34dfd32b [core] some server_main_loop() cleanup 2019-02-04 02:25:48 -05:00
Glenn Strauss fb9b8ad8ae [core] mark startup/shutdown funcs cold 2019-02-04 02:25:48 -05:00
Glenn Strauss 413c0e557e [core] separate server_main_loop() func, mark hot
move server main loop into separate func and mark hot
separate funcs for signal handling
2019-02-04 02:25:48 -05:00
Glenn Strauss 142e54b2a8 [mod_evhost] handle IPv6 literal addr; add tests 2019-02-02 18:40:47 -05:00
Glenn Strauss 40ded06b08 - next is 1.4.54 2019-01-27 04:47:20 -05:00
Glenn Strauss 4d3447fd44 [doc] NEWS 2019-01-26 23:58:59 -05:00
Glenn Strauss 2769f19ad3 [mod_openssl] ssl.privkey directive (optional)
ssl.privkey can be used to specify path to file containing private key
in lieu of concatenating certificate and private key into single .pem
2019-01-26 17:22:43 -05:00
Martin Storsjö 3ac7764cfe [core] Fix recursive include_shell invocations
When the output of include_shell calls include_shell itself,
that second invocation must not truncate the buffer used for the
outer include_shell.

This might sound like a pathological setup in itself, but with
e.g.  debian's include-conf-enabled.pl, which outputs a list of
include statements for all files in /etc/lighttpd/conf-enabled,
if any of the *.conf files in that directory invokes include_shell,
the parsing of the rest of the files in that directory is effectively
aborted.

This fixes a regression since commit
a46bc4f5de in such setups.

github: closes #95
2019-01-26 16:30:23 -05:00
Glenn Strauss b17d3c2407 [mod_openssl] ALPN and acme-tls/1 (fixes #2931)
ssl.acme-tls-1 = "/path/to/dir" containing .crt.pem and .key.pem
named with the SNI name ("<SNI>.crt.pem" and "<SNI>.key.pem")

x-ref:
  "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension"
  https://tools.ietf.org/html/rfc7301
  "ACME TLS ALPN Challenge Extension" (TLS-ALPN-01)
  https://tools.ietf.org/html/draft-ietf-acme-tls-alpn-05
  "Support for TLS-ALPN-01"
  https://redmine.lighttpd.net/issues/2931
2019-01-25 03:04:16 -05:00
Glenn Strauss f77cfe7ca8 [core] con->uri.scheme is maintained lowercase
con->uri.scheme is maintained lowercase "http" or "https"
so scheme string comparisons need not be case-insensitive
2019-01-22 01:42:39 -05:00
Glenn Strauss 05d20bcac2 [mod_webdav] compare COPY, MOVE Destination scheme
compare COPY, MOVE Destination scheme with request URI scheme
2019-01-22 01:04:23 -05:00
Glenn Strauss b31e7840d5 [multiple] quiet clang --analyze where trivial
quiet clang --analyze warnings where trivial to do so
2019-01-21 18:05:10 -05:00
Glenn Strauss a929de7ae5 [multiple] calloc match ptr type (clang --analyze) 2019-01-21 17:58:22 -05:00
Glenn Strauss 69d17e04cd [mod_expire] look up expire fallback "" explicitly
equivalent to prior code, but more direct (legibile in code) to look up
empty string than to walk array.  Might be marginally faster to walk
array when the list is short, but the lookup is also fairly quick in
that case, too.
2019-01-21 17:54:25 -05:00
Glenn Strauss 4608ddec2f [build] autotools: try mysqlclient.pc and mariadb.pc (fixes #2925)
(thx helmut)

x-ref:
  "autotools cross build failure with lighttpd"
  https://redmine.lighttpd.net/issues/2925
2019-01-19 17:42:12 -05:00
Glenn Strauss ce7b47c015 [core] systemd socket activation support 2019-01-19 17:42:08 -05:00
Glenn Strauss 5b0e27f8ad [core] network_srv_sockets_append() shared code 2019-01-18 01:55:33 -05:00
Glenn Strauss 6b77372ae7 [core] move /dev/stdin graceful restart handling
move /dev/stdin graceful restart handling special-case up out of
network_server_init()
2019-01-18 00:16:55 -05:00
Glenn Strauss b2ee667a3d [core] move winsock init to network_init() 2019-01-13 23:56:54 -05:00
Stefan Bühler 9b7a32ea70 [doc/conf] resolve some mime type conflicts from debian buster, regenerate mime.conf 2019-01-13 15:26:27 -05:00
Glenn Strauss a70cf6e5dc [core] cache rev DNS for localhost for dir redir 2019-01-11 19:54:43 -05:00
Glenn Strauss 629b16f188 [core] send Connection: close if reqbody not read (fixes #2924)
send Connection: close if it is known that request body has not finished
being read and will not finish being read

x-ref:
  "Suboptimal keep-alive handling when request body is not read"
  https://redmine.lighttpd.net/issues/2924
2019-01-10 02:18:14 -05:00