Commit Graph

2692 Commits (babf8112f7e7f875adceb84278a601cdedf1268a)

Author SHA1 Message Date
Glenn Strauss a46bc4f5de [core] remove proc_open.[ch], reduce stdio.h use 2018-08-05 03:44:15 -04:00
Glenn Strauss fb5a33ffe9 [core] remove unused get_http_status_body_name() 2018-08-05 03:44:15 -04:00
Glenn Strauss c56b21084e [core] http_kv.[ch] method, status, version str
move method, status, version strings from keyvalue.[ch] to http_kv.[ch]
2018-08-05 03:44:15 -04:00
Glenn Strauss 1b62dc325c [tests] test_request unit tests
unit tests for request processing
collect existing request processing tests from Perl tests/*.t
(test_request.c runs *much* more quickly than Perl tests/*.t)
2018-08-05 03:44:15 -04:00
Glenn Strauss e8c1efd5df [core] data_config_pcre_compile,exec()
collect PCRE usage related to config processing
2018-08-05 03:44:15 -04:00
Glenn Strauss cf9474aa2c [mod_redirect, mod_rewrite] code reuse (sharing) 2018-08-05 03:44:15 -04:00
Glenn Strauss 22f3f43621 [core] CONNECT must be handled before fs hooks
do not permit CONNECT requests to hit filesystem hooks
since the CONNECT URI bypasses path normalization
2018-08-05 03:44:15 -04:00
Glenn Strauss 83cdf28610 [core] check for continuation in server.tag
check server.tag for newlines (not expected) and ensure proper
header continuation.

remove buffer_append_string_encoded() ENCODING_HTTP_HEADER
(continuations in response headers handled in response_header_*() funcs)
2018-08-05 03:44:15 -04:00
Glenn Strauss 132c1b6019 [tests] remove test_buffer output, except on error 2018-08-05 03:44:15 -04:00
Glenn Strauss 1cef8dfc05 [tests] reduce test_base64 brute force tests
It is not necessary to test every single value of 3 chars for confidence
in the tests.  256^256^256 is a bit overkill (and much more time
consuming than other tests)
2018-08-05 03:44:15 -04:00
Glenn Strauss 1593190651 [core] buffer_append_string_encoded() uc hex
Use uc hex chars in buffer_append_string_encoded(), preferred in RFC3986

Preserve behavior using lc hex chars in buffer_append_string_c_escaped()
2018-08-05 03:44:15 -04:00
Glenn Strauss 3d880810d1 [core] buffer_append_uint_hex_lc() uses lc hex 2018-08-05 03:44:15 -04:00
Glenn Strauss d3cf141d14 [core] li_tohex_lc() explicitly uses lc hex chars
remove buffer_copy_string_hex()
2018-08-05 03:44:15 -04:00
Glenn Strauss 5e60b8faea [mod_secdownload] compare bin MAC instead of hex 2018-08-05 03:44:15 -04:00
Glenn Strauss 9eda625d67 [core] more efficient hex2int() 2018-08-05 03:44:15 -04:00
Glenn Strauss 936db51f05 [core] buffer_append_string_encoded_hex_lc()
special-purpose routine is more efficient than what was previously in
buffer_append_string_encoded() with ENCODING_HEX
2018-08-05 03:44:15 -04:00
Glenn Strauss 78024584bb [core] check if SOCK_NONBLOCK is ignored (fixes #2883)
x-ref:
  "fdevent_init should check if SOCK_NONBLOCK works"
  https://redmine.lighttpd.net/issues/2883
2018-08-05 03:44:15 -04:00
Glenn Strauss 3efaff973f [mod_fastcgi,mod_scgi] fastcgi.balance,scgi.balance (fixes #2882)
x-ref:
  "fastcgi.balance not working"
  https://redmine.lighttpd.net/issues/2882
2018-08-05 03:44:15 -04:00
Glenn Strauss b70186131a [mod_magnet] reduce buffer copies
reduce buffer copies, but leave where (buffer *) arg required
2018-04-08 22:22:23 -04:00
Glenn Strauss 4753064318 [mod_magnet] code reuse 2018-04-08 22:22:23 -04:00
Glenn Strauss 6fb023d664 [mod_wstunnel] better Sec-WebSocket-Protocol parse
Improve handling of Sec-WebSocket-Protocol: binary, base64 for RFC6455.
When client sends Sec-WebSocket-Protocol in request header, client
may expect Sec-WebSocket-Protocol response.  mod_wstunnel is basic
tunnel endpoint and supports "binary" and "text" modes for RFC6455,
conventionally requested by client browsers as "binary" or "base64"
2018-04-08 22:22:23 -04:00
Glenn Strauss 04d76e7afd [core] some header cleanup
provide standard types in first.h instead of base.h
provide lighttpd types in base_decls.h instead of settings.h
reduce headers exposed by headers for core data structures
  do not expose <pcre.h> or <stdlib.h> in headers
move stat_cache_entry to stat_cache.h
reduce use of "server.h" and "base.h" in headers
2018-04-08 22:22:23 -04:00
Glenn Strauss fefc82153a [build] remove m4 AC_PATH_PROG for PKG_CONFIG
replaced by PKG_PROG_PKG_CONFIG and PKG_CHECK_MODULES()
2018-03-25 01:06:58 -04:00
Glenn Strauss d400f8aac5 [core] fdevent_accept_listenfd() nonblock cloexec
fdevent_accept_listenfd() now always returns fd O_NONBLOCK O_CLOEXEC
for consistency, rather than setting elsewhere in connection_accepted()

Handle older Linux 2.6 kernels which might have accept4() in glibc,
but return ENOSYS, as accept4() was not added until Linux kernel 2.6.28.
2018-03-25 00:59:48 -04:00
Glenn Strauss 26fb8d3ee6 [mod_proxy] fix segfault in Set-Cookie reverse map (fixes #2879)
fix segfault in reverse url-path mapping of Set-Cookie sent from backend
when proxy.header = ( "map-urlpath" => ( ... ) ) is used and there are
multiple Set-Cookie response headers with path= attributes which need to
be reverse mapped.

(thx ganto)

x-ref:
  "Segfault with proxy-header map-urlpath"
  https://redmine.lighttpd.net/issues/2879
2018-03-22 00:25:06 -04:00
Glenn Strauss 210b57708e [core] fix rare race condition from backends (fixes #2878)
fix rare race condition from backends with server.stream-response-body=2

(thx abelbeck)

x-ref:
  "fastcgi and stream-response-body=2 hangs on last chunk"
  https://redmine.lighttpd.net/issues/2878
2018-03-18 19:01:32 -04:00
Glenn Strauss 957916a90e [core] minor code cleanup in gw_recv_response() 2018-03-17 23:16:48 -04:00
Glenn Strauss 86f64a0288 [mod_magnet] fix regression in lighty.stat (fixes #2877)
fix regression in mod_magnet lighty.stat introduced in lighttpd 1.4.49
in commit commit:b1df38ab

x-ref:
  "lighty.stat failure"
  https://redmine.lighttpd.net/issues/2877
2018-03-17 11:57:50 -04:00
Glenn Strauss e21906b3b4 [core] fix crash if 'host' empty in config (fixes #2876)
x-ref:
 "segfault with fastcgi app"
  https://redmine.lighttpd.net/issues/2876
2018-03-15 23:21:37 -04:00
Glenn Strauss 78e25f0f50 [mod_extforward] allow explict IPs to be untrusted (#2860)
Allowing explicit IPs to be rejected might be useful in situations
where an internal network is to be allowed by CIDR mask, but there are
a small number of untrusted hosts on the network, e.g. hosts behind a
NAT to which some external ports are forwarded.

CIDR masks must be marked "trust", or else are ignored with a warning.

x-ref:
  "RFE: mod_extforward CIDR support"
  https://redmine.lighttpd.net/issues/2860
2018-03-13 00:08:10 -04:00
Glenn Strauss ae54806dc2 - next is 1.4.50 2018-03-11 21:54:44 -04:00
Glenn Strauss d0d5d4267b [doc] NEWS 2018-03-11 20:23:32 -04:00
Glenn Strauss 758d24142b [core] fix incorrect hash algorithm impl
fix incorrect implementation of djb hash algorithm
2018-03-11 12:18:41 -04:00
Glenn Strauss 5a6e4df85c [mod_auth] check that digest realm matches config 2018-03-11 00:31:12 -05:00
Glenn Strauss 81b7e8e2fb [mod_auth] constant time compare plain passwords
(digests have same length)
2018-03-11 00:28:56 -05:00
Glenn Strauss 7265c72b6c [autoconf] reduce minimum automake version to 1.13
Although removal of AM_PROG_CC_C_O in f107bac8 requires automake 1.14
to provide the same functionality in AC_PROG_CC, any widely used,
modern compiler supports cc -c -o.  Reducing the minimum required
automake version avoids the current need for Centos 7 maintainers
to patch configure.ac in order to build binary packages.
2018-03-07 00:35:55 -05:00
Glenn Strauss 4a674224ab [core] re-enable overloaded backends w/ multi wkrs
re-enable overloaded backends when server.max-worker is non-zero

(thx jens-maus)

x-ref:
  "mod_proxy not re-enabling proxy with 1.4.48" (multiple workers)
  https://redmine.lighttpd.net/boards/2/topics/7906
2018-03-04 14:36:09 -05:00
Glenn Strauss fc7edb3946 [mod_extforward] CIDR support for trusted proxies (fixes #2860)
x-ref:
  "RFE: mod_extforward CIDR support"
  https://redmine.lighttpd.net/issues/2860
2018-03-04 07:16:16 -05:00
Glenn Strauss cd2b51cb1a [core] fix CONNECT w strict header parsing enabled
fix CONNECT with strict header parsing enabled (default)
(or set server.http-parseopt-header-strict = "disabled")

x-ref:
  "ssh over https tunnel"
  https://redmine.lighttpd.net/boards/2/topics/7805
2018-02-26 00:44:14 -05:00
Glenn Strauss bd32f67046 [core] open additional fds O_CLOEXEC 2018-02-03 13:45:14 -05:00
Glenn Strauss b1df38ab6a [core] increase stat_cache abstraction
reduce dependency on struct connection
routines for getting/caching content_type and etag separate from stat
2018-02-02 23:28:38 -05:00
Glenn Strauss 2496c1af4c [core] pass array_get_element_klen() const array * 2018-02-02 06:22:33 -05:00
Glenn Strauss 6a6d32698e [core] fix path-info calculation in git master (fixes #2861)
(thx ReimuHakurei)

x-ref:
  "Regression: PHP URLs return 404 from lighttpd when they contain PATH_INFO ending in a trailing slash."
  https://redmine.lighttpd.net/issues/2861
2018-02-02 06:10:24 -05:00
Glenn Strauss 978a3f8dad [core] add include sys/poll.h on Solaris (fixes #2859)
x-ref:
  "fdevent_solaris_port.c header missing on Solaris 10"
  https://redmine.lighttpd.net/issues/2859
2018-01-22 19:54:15 -05:00
Glenn Strauss 58a1793964 [core] fix 32-bit compile POST w/ chunked request body (#2854)
(thx the_jk)

x-ref:
  "chunked transfer encoding in request body only works for tiny chunks"
  https://redmine.lighttpd.net/issues/2854
2018-01-19 22:35:17 -05:00
Glenn Strauss 30fe3684f6 [mod_wstunnel] fix for frames larger than 64k (fixes #2858)
(thx rschmid)

x-ref:
  "Wrong websocket frametype if frame is longer then UINT16_MAX"
  https://redmine.lighttpd.net/issues/2858
2018-01-19 22:20:35 -05:00
Glenn Strauss 1c594f0629 [doc] minor update to *outdated* doc
x-ref:
  "unknown config-key: auth.debug (ignored)"
  https://redmine.lighttpd.net/boards/2/topics/7842

github: closes #89
2018-01-19 22:20:16 -05:00
Glenn Strauss e6564641d8 [core] remove unused func 2018-01-19 22:13:58 -05:00
Glenn Strauss dc1675ea32 [core] fix POST with chunked request body (fixes #2854)
(thx the_jk)

x-ref:
  "chunked transfer encoding in request body only works for tiny chunks"
  https://redmine.lighttpd.net/issues/2854
2018-01-13 22:53:19 -05:00
Glenn Strauss cb371557e5 [core] merge redirect/rewrite pattern substitution
merge redirect/rewrite pattern substitution function (share code)
2018-01-10 01:39:05 -05:00