Commit Graph

2540 Commits (ec9e6abcb3b5d3a2eb1339e6f87b5700cd1cd4c6)
 

Author SHA1 Message Date
Glenn Strauss 7f82ddab3f [core] remove fdevent_sched_run from fdevent_libev (#2827)
remove fdevent_sched_run from fdevent_libev.c
(redundant since commit 8ed588ce)

x-ref:
  "POST to mod_cgi sometimes hangs"
  https://redmine.lighttpd.net/issues/2827
6 years ago
fbrosson 9b0e095c9f [core] add back REQUEST_SCHEME for backends
x-ref:
  "[core] Add back REQUEST_SCHEME (for use in e.g. mod_ssi)"
  https://github.com/lighttpd/lighttpd1.4/pull/85

github: closes #85
6 years ago
Glenn Strauss fa1eef0071 [core] permit LF to end lines if !header-strict
permit LF to end header lines if
  server.http-parseopt-header-strict = "disable"
(instead of requiring CR LF)

(makes it easy to use 'openssl s_client -connect <IP:port>' on unix)

(Note: care taken to minimize diff in this commit,
 but header parsing code should be revisited and overhauled)
6 years ago
Glenn Strauss 0ff8904a72 [mod_openssl] remove erroneous SSL_set_shutdown()
remove erroneous call to SSL_set_shutdown()
(historical from commit:3888c103)
(erroneous since lighttpd 1.4.40 moved to bidirectional input/output)

x-ref:
  "wstunnel sample config"
  https://redmine.lighttpd.net/boards/2/topics/7600
6 years ago
Glenn Strauss 7661587f01 [mod_openssl] copy data for larger SSL packets
copy small mem chunks into single large buffer before SSL_write()
to reduce number times write() called underneath SSL_write() and
potentially reduce number of packets generated if socket TCP_NODELAY
6 years ago
Glenn Strauss a4d40da9f2 [core] remove fd interest if create_env returns
remove fd interest in FDEVENT_OUT to backend if create_env hook returns
a status that is not HANDLER_GO_ON, HANDLER_FINISHED, or HANDLER_ERROR
(e.g. HANDLER_WAIT_FOR_EVENT or HANDLER_WAIT_FOR_FD or HANDLER_COMEBACK)
6 years ago
Glenn Strauss d3f4a62c10 [mod_dirlisting] custom js date parse func (fixes #2823)
lighttpd mod_dirlisting produces a directory listing with the date in a
certain format, and lighttpd calls setlocale(LC_TIME, "C"), so strftime
date used in mod_dirlisting is predictable.  Use a custom date parse
routine to replace Date.parse() in the javascript sorting functions.

x-ref:
  "Directory listing / sort by last modified does not work on Safari"
  https://redmine.lighttpd.net/issues/2823
6 years ago
Glenn Strauss 7bd46d1984 [core] fix $REQUEST_HEADER[...] parsing in config (#1556)
x-ref:
  "Allow matching against any arbitrary HTTP header in the configuration file regexps"
  https://redmine.lighttpd.net/issues/1556
  https://redmine.lighttpd.net/boards/2/topics/7609
6 years ago
Glenn Strauss 8ed588ce32 [core] handle fds pending close after poll timeout (fixes #2827)
handle fds pending close whether or not new events are triggered

(thx davidm)

x-ref:
  "POST to mod_cgi sometimes hangs"
  https://redmine.lighttpd.net/issues/2827
6 years ago
Glenn Strauss 60a98ebaf4 [core] quiet coverity warning 6 years ago
Glenn Strauss 513e407b06 [mod_wstunnel] remove invalid appended '\0'
remove invalid appended '\0' in code originating from Norio Kobota
mod_websocket_frame.c.  /* needs '\0' char to send */ is not valid

x-ref:
  "wstunnel sample config"
  https://redmine.lighttpd.net/boards/2/topics/7600
6 years ago
Glenn Strauss ef11fa42da [mod_wstunnel] set Sec-WebSocket-Protocol if bin
set Sec-WebSocket-Protocol: binary in response if request header
Sec-WebSocket-Protocol: binary provided by client in Upgrade: websocket
request, or if wstunnel.frame-type = "binary" in lighttpd config
6 years ago
Glenn Strauss d8dba4ae6a [core] gateways might Upgrade con before body read
some gateways might Upgrade connection before request body is read

(mod_wstunnel sets con->file_started = 1 and -1 == hctx->wb_reqlen
 and sends Connection: upgrade and Upgrade: websocket before reading
 request body)

x-ref:
  "wstunnel sample config"
  https://redmine.lighttpd.net/boards/2/topics/7600
6 years ago
Glenn Strauss b8e6419f3a [core] return from http_response_read if small rd
return from http_response_read() if read smaller than available buffer
6 years ago
Glenn Strauss 0528e2e712 [core] limit use of TCP_CORK
limit use of TCP_CORK to when chunkqueue contains a non-MEM_CHUNK
(in addition to restricting to Linux, more than one chunk, and TCP)
6 years ago
Glenn Strauss f22b5d69da [core] inline chunkqueue_is_empty() 6 years ago
Glenn Strauss 9a69f31b20 [core] compare listen addrs after DNS resolution
compare listen addrs after DNS resolution when starting up server
6 years ago
Glenn Strauss 5c25f629ab [core] /dev/stdin listener for inetd wait yes
server.bind = "/dev/stdin" for use with inetd wait yes

(experimental)

x-ref:
  "inetd/wait mode with auto-shutdown after idle timeout"
  https://redmine.lighttpd.net/issues/2824
6 years ago
Glenn Strauss 00d976b130 [core] cleaner code; remove goto from network.c 6 years ago
Glenn Strauss 878dd9be49 [core] use sun_path for addr string for AF_UNIX (fixes #2826)
(occurs when lighttpd is configured to listen on unix socket path)

x-ref:
  "stale REMOTE_ADDR when using AF_UNIX socket"
  https://redmine.lighttpd.net/issues/2826
6 years ago
Glenn Strauss 7aff5046ac [unittests] consolidate base64 test code
consolidate base64 test code

use char type for tables to reduce memory use
  (potentially increase cache hits)
6 years ago
Glenn Strauss c49f515096 [network] do not append port to unix socket paths
x-ref:
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=877039
6 years ago
Glenn Strauss 513887fa52 [core] URI scheme is case-insensitive
check case-insensitive scheme if full URI provided in request-line

RFC7230:
  The scheme and host are case-insensitive and normally provided
  in lowercase; all other components are compared in a case-sensitive
  manner.

x-ref:
  "https://redmine.lighttpd.net/boards/3/topics/7637"
6 years ago
Stefan Bühler 428cd963d6 [lemon] fix gcc implicit-fallthrough warning 6 years ago
Stefan Bühler f46b1b1d53 [algo_sha1] fix compile break and warnings
size_t requires <sys/types.h> or <unistd.h>, <stdint.h>/<inttypes.h> is
not enough.

also use `const` consistently for the passed data.
6 years ago
Glenn Strauss 46719b8925 [mod_wstunnel] fix NULL ptr deref
fix NULL ptr deref if wstunnel.server configured inside a conditional
and not in global scope

(thx nicorac)

x-ref:
  "https://redmine.lighttpd.net/boards/2/topics/7600"
6 years ago
Glenn Strauss a156fdbc7b [core] fix triggered assert on HTTP chunked input (fixes #2822)
(thx AlxT)

x-ref:
  "Segmentation fault on HTTP chunked input"
  https://redmine.lighttpd.net/issues/2822
6 years ago
Glenn Strauss cbb5ee621c [core] disable Nagle if streaming to backend
disable Nagle algorithm if streaming to backend and content-length
is unknown at the point where lighttpd is about to begin sending
data to backend
6 years ago
Glenn Strauss 09b2b146e1 [core] make strftime_cache_get() 16-element cache
Prior code was effectively a 1-element cache after the initial fill
of the array since only the first element was replaced after the
initial fill.  New code does round-robin replacement.

(whether or not #define FILE_CACHE_MAX 16 is appropriately sized here
 is a question for another day)
6 years ago
Glenn Strauss 93e91954a7 [core] fdevent setsockopt() helper functions
fdevent_set_tcp_nodelay()
fdevent_set_so_reuseaddr()
6 years ago
Glenn Strauss 17373221b8 [mod_wstunnel] fix config parsing bug
fix logic inversion when validating values in wstunnel.origins

(thx nicorac)

x-ref:
  "https://redmine.lighttpd.net/boards/2/topics/7600"
6 years ago
Glenn Strauss 6e171bd4b9 [core] adjust li_rand_pseudo* interfaces 6 years ago
Glenn Strauss 2bed2c14af [mod_webdav] check HAVE_UUID for -luuid
check HAVE_UUID for -luuid in order to detect more pedantic cases,
e.g. when -luuid is not installed under Cygwin, even if devel headers
are present (<uuid/uuid.h>)
6 years ago
Glenn Strauss cf4bc764dc [mod_cgi] omit cgi_handle_fdevent after proc exit
Omit calling cgi_handle_fdevent() after CGI process exit.
Another (sub)process may be holding pipe fd open and might write
response instead of the initial CGI process.
6 years ago
Glenn Strauss e951152e2b [mod_cgi] add FDEVENT_IN upon CGI exit
add FDEVENT_IN in addition to FDEVENT_HUP when triggering
cgi_handle_fdevent() after the CGI process exits.

(This helps improve reliability when running tests under Cygwin)
6 years ago
Glenn Strauss f4e1357df5 [mod_openssl] ssl.read-ahead="disable" for stream
set default ssl.read-ahead = "disable" for streaming when
server.stream-request-body = 1 or 2 is set in the global scope

It is still recommended that embedded and other low-memory systems
explicitly set ssl.read-ahead = "disable" in the global scope
(regardless of server.stream-request-body setting)

On the other hand, for systems which enable server.stream-request-body
to non-zero value, and for which sufficient memory is available, then
ssl.read-ahead = "enable" is recommended and should be explicitly set
in the global or $SERVER["socket"] configuration blocks in lighttpd.conf

x-ref:
  "https POST requests buffered in RAM since v1.4.41?"
  https://redmine.lighttpd.net/boards/2/topics/7520
6 years ago
Glenn Strauss 3622d2b66a [mod_rrdtool] handle_trigger returns HANDLER_GO_ON
handle_trigger should return HANDLER_GO_ON even on error,
since we want other trigger funcs from other modules to
be able to perform periodic maintenance
6 years ago
Glenn Strauss 9030cfaecf [core] SIGCHLD handle_waitpid hook for modules
centralize most waitpid() handling in core server, with hooks for
modules to be informed of pid and status when a process exits.

This enables faster discovery (and restart) of exited processes,
and also allows for lighttpd to manage backend processes in the
parent (master) process when server.max-worker > 0.
6 years ago
Glenn Strauss 26dce93086 [core] attempt to quiet compiler warning in LEDE 6 years ago
Glenn Strauss dadfb5fcf5 [core] attempt to quiet coverity false positives 6 years ago
Glenn Strauss 9bc61f16cb [core] attempt to quiet coverity false positives 6 years ago
Glenn Strauss 748fc860fb [mod_fastcgi] fix return when streaming min buffer
fix incorrect return value when server.stream-response-body = 2
6 years ago
Glenn Strauss 85325d9c19 [mod_cgi] fix bug to properly exec interpreter
fix bug to properly exec interpreter when cgi handler is set

(thx stbuehler)
6 years ago
Glenn Strauss 8228273473 [mod_accesslog] flush access logs every 4 seconds 6 years ago
Glenn Strauss ca7a97f211 [core] workaround for AIX mmap define
AIX might #define mmap mmap64 and this conflicts with .mmap member
of struct chunk in chunk.h

x-ref:
  ".mmap in chunk.c on AIX 5.2"
  https://redmine.lighttpd.net/boards/2/topics/7512?r=7513
6 years ago
Glenn Strauss b6bd4d3d94 [mod_extforward] PROXY proto and SSL_CLIENT_VERIFY
Use config directive extforward.hap-PROXY-ssl-client-verify = "enable"
to enable setting SSL_CLIENT_VERIFY, REMOTE_USER, and AUTH_TYPE using
information provided by HAProxy PROXY protocol.
6 years ago
Glenn Strauss 7ec74fe7b1 [core] warn if backend server config contains '_'
(detect a common config typo)
6 years ago
Glenn Strauss 19d2190a4f [core] set socket perms after bind, before listen
(it is still recommended to create sockets in protected directories)

x-ref:
  "Feature request: add server config for setting permissions on Unix domain socket"
  https://redmine.lighttpd.net/issues/656
6 years ago
Glenn Strauss 3c8afd194c [core] base_decls.h to quiet compiler warnings
quiet compiler warning for -Wtypedef-redefinition
(redefinition of typedef is a C11 feature)
6 years ago
Glenn Strauss 2e0f87c8a5 [core] add missing #include
(quiet compiler warning)
6 years ago