Commit Graph

2855 Commits (3e200717ccbc6aaed5f0da0610a2956af9d5d0e0)

Author SHA1 Message Date
Glenn Strauss 3e200717cc [mod_openssl] inherit cipherlist from global scope
inherit cipherlist from global scope if not set in $SERVER["socket"]
2019-03-07 00:32:17 -05:00
Glenn Strauss 1542e44bb7 [core] use openssl to read,discard request body
use openssl to read,discard request body after response has been sent
on a TLS connection, at least until SSL close notify has been sent

x-ref:
  "HTTPS POST upload hangs when i reach maximum supported request size"
  https://redmine.lighttpd.net/boards/2/topics/8491
2019-03-07 00:32:14 -05:00
Glenn Strauss fca9e5a0b1 [core] prefer memchr() over strchr() 2019-02-17 19:51:12 -05:00
Glenn Strauss fc914ae442 [core] map FDEVENT_* to OS system event frameworks
(avoid need to translate event flags between OS and lighttpd FDEVENT_*)
2019-02-17 18:35:05 -05:00
Stefan Bühler 9232145024 [core] poll: fdarray uses fd as index, not fde_ndx 2019-02-16 11:26:50 +01:00
Stefan Bühler 1bd1d559b5 [core] don't call fd event handlers more than once, they might already be gone (fixes segfault) 2019-02-16 10:52:49 +01:00
Glenn Strauss f5f221eda8 [core] dispatch events from within event framework
event framework now calls interface to dispatch events rather than
itself implementing multiple interfaces for fdevent_process() to
be able to dispatch events generically.
2019-02-13 21:34:59 -05:00
Glenn Strauss 9459c05468 [core] fix mixed use of srv->split_vals array (fixes #2932)
regression in mod_evhost in lighttpd 1.4.53
regression in mod_flv_streaming in lighttpd 1.4.51 - lighttpd 1.4.53

(thx moisseev)

x-ref:
  "[regression] %0 pattern does not match hostnames without the domain part"
  https://redmine.lighttpd.net/issues/2932
2019-02-13 19:54:22 -05:00
Glenn Strauss 13f957d283 [core] simpler loops to run plugin hooks 2019-02-13 02:07:53 -05:00
Glenn Strauss c38eddfc29 [core] skip plugins_call_cleanup if not init'ed 2019-02-13 00:42:23 -05:00
Glenn Strauss b1a9f335c6 [core] connection_handle_write() updates con state
(return value was always 0, so remove checks for other values)
2019-02-12 23:00:26 -05:00
Glenn Strauss 4713b6a61c [core] con->is_ssl_sock
flag to indicate if socket protocol is TLS
(future use: will be needed with connection upgrade to https; not impl)
2019-02-12 22:51:17 -05:00
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