Commit Graph

2711 Commits (fccc7fc607ff311d899397beaeb1093e82f4a375)
 

Author SHA1 Message Date
Glenn Strauss fccc7fc607 [core] perf: chunk.c chunk pool
reuse chunks across chunkqueues; remove cq->unused, cq->unused_chunks
reuse same buffer c->mem and c->file.name in chunk
5 years ago
Glenn Strauss c79bc31609 [mod_fastcgi] perf: reduce data copies
http_chunk_transfer_cqlen()
5 years ago
Glenn Strauss 2df8f9ebf4 [mod_fastcgi] perf: reduce data copies
reduce data copies while reading FastCGI packets from FastCGI backend
5 years ago
Glenn Strauss f934615466 [core] permit env vars to be set with blank value
(regression in lighttpd 1.4.51)
5 years ago
Glenn Strauss f410431b58 [multiple] perf: use larger initial backend buffer
use larger initial backend buffer if the client request is large
5 years ago
Glenn Strauss 7e8beee577 [multiple] perf: power-2 alloc large headers
allocate large headers by power-2 as headers to backend is generated
(mod_proxy, mod_fastcgi, mod_scgi)
5 years ago
Glenn Strauss 610d5c03ab [multiple] perf: write headers to backend write cq
write headers directly to dynamic backend write chunkqueue
(mod_proxy, mod_fastcgi, mod_scgi)
5 years ago
Glenn Strauss a9ae35128d [core] chunk.c code reuse 5 years ago
Glenn Strauss 61e507bfe5 [core] perf: better buf reuse reading from backend 5 years ago
Glenn Strauss 40d3408328 [core] perf: append response directly into write q
prepend non-dynamic response directly into write queue chunkqueue
5 years ago
Glenn Strauss 758174ecbc [core] perf: specialized func for array sorting
specialized func for array sorting for use in binary search
5 years ago
Glenn Strauss 59a71815dc [core] perf: copy small strings; extend last chunk
copy small strings; extend last chunk
(instead of creating new, tiny chunk)
5 years ago
Glenn Strauss e7c840502a [core] perf: copy small strings; better buf reuse
copy small strings to write queue for better buffer reuse
(instead of swapping with larger buffers in write chunkqueue)
5 years ago
Glenn Strauss 23c72fc606 [core] perf: prepend headers directly into write q
prepend response headers directly into write queue chunkqueue
5 years ago
Glenn Strauss 5a159e828d [core] perf: size write buffers for reuse
size write buffers for reuse in common cases
(so that write buffers are BUFFER_MAX_REUSE_SIZE)
5 years ago
Glenn Strauss 2e23b43d12 [core] perf: buffer_align_size() identity if align
use identity if requested size is already aligned to BUFFER_PIECE_SIZE
5 years ago
Glenn Strauss 929909a999 [core] perf: skip redundant prepare copy calls
skip redundant calls to buffer_string_prepare_copy() when simply
clearing buffer is sufficient, e.g. when a blanked buffer is desired
before calling buffer_append_strftime(), which internally prepares
buffer for the resultant formatted string
5 years ago
Glenn Strauss d4a93a531d [core] perf: buffer_copy_string_len()
buffer_copy_string_len() short-circuit common case,
but preserve blank-string initialization side-effect
if buffer is empty
5 years ago
Glenn Strauss 15277bf9e1 [core] perf: one-element cache for host normalize
one-element cache for http_request_host_normalize() on IP address
5 years ago
Glenn Strauss babf8112f7 [core] perf: buffer_free_ptr() __attribute__ cold 5 years ago
Glenn Strauss 062089ff14 [core] perf: array_reset_data_strings()
array_reset_data_strings() specialization
5 years ago
Glenn Strauss 29dd9379ff [core] perf: call connection_reset() fewer times
connection_reset() is called at end of request to prepare for keep-alive
or to free resources while waiting for client to close connection.
This is the reason why it is called earlier towards end of request
rather than always waiting until the very end of request when socket
is closed.

connection_reset() used to additionally be called for every new socket
connection, but now is only called when new conns are allocated and
initialized.
5 years ago
Glenn Strauss 3d60d8535f [build] Fix unportable test(1) operator
(thx Thomas Klausner)
5 years ago
Glenn Strauss c8136a66fe [core] typo in trace 5 years ago
Glenn Strauss 468b3a5b33 [mysql] MySQL 8 deprecates my_bool
replace my_bool with char in mod_vhostdb_mysql and mod_mysql_vhost
(mysql.h contains: typedef char my_bool; and passes a pointer to it
 as third argument, a (void *), to mysql_options())
5 years ago
Glenn Strauss c9a64d94fc - next is 1.4.52 5 years ago
Glenn Strauss 0828010eb6 [doc] NEWS 5 years ago
Glenn Strauss 98f5cc6f0d [core] permit server.error_handler to static file
This use is not recommended since it means that the response body
will not contain the precise error code.

x-ref:
  "What is the proper syntax for server.error-handler in 1.4.45"
  https://redmine.lighttpd.net/boards/2/topics/8320
5 years ago
Glenn Strauss bc25684f0c [core] perf: buffer_string_append_len()
buffer_string_append_len() short-circuit common case,
but preserve blank-string initialization side-effect
if buffer is empty
5 years ago
Glenn Strauss 082b485802 [mod_openssl] wolfSSL does not support SSLv2 5 years ago
Glenn Strauss f1489b5a11 [core] perf: buffer.c internal inlines
buffer_copy_string_len() and buffer_append_string_len() now
internally inline what buffer_commit() does, but do not repeat the
sanity checks already enforced by buffer_string_prepare_copy() and
buffer_string_prepare_append(), respectively

buffer_string_set_length() short-circuit common case
5 years ago
Glenn Strauss 78d4ef9e0f [build] CMake support for wolfSSL
(missing HAVE_WOLFSSL_SSL_H without add_definition() suggests that
 there are other definitions that are not being exported for use
 in the build, so lighttpd built with CMake has base features only)
5 years ago
Glenn Strauss 923b321094 [build] meson support for wolfSSL
meson.build needed to change some args to lists to support meson objects
5 years ago
Glenn Strauss a950ae15ca [build] SCons support for wolfSSL 5 years ago
Glenn Strauss 778b07a034 [build] automake support for wolfSSL 5 years ago
Glenn Strauss 0074b6d342 [mod_openssl] add support for wolfSSL
requires wolfSSL library version 3.15.3 or later
https://www.wolfssl.com/
https://github.com/wolfSSL/wolfssl

(thx dgarske)

x-ref:
  "Adds support for building Lighttpd with wolfSSL"
  https://github.com/lighttpd/lighttpd1.4/pull/92
5 years ago
Glenn Strauss e9f223d35e [mod_auth] use SHA1_Init,Update,Final
wolfSSL does not provide the SHA1() convenience function,
so use stepwise funcs SHA1_Init(), SHA1_Update(), SHA1_Final()
5 years ago
Glenn Strauss d825966739 [core] reject Transfer-Encoding from proxy (#2913)
reject Transfer-Encoding from backend for mod_proxy.
mod_proxy currently sends HTTP/1.0 requests to the backend,
for which Transfer-Encoding: chunked is not a valid response header.
Additionally, there is no value to Transfer-Encoding: chunked from
backend since lighttpd mod_proxy sends HTTP/1.0 request along with
Connection: close, so the backend closing the socket is the end of
the response from the backend.

x-ref:
  "Reverse proxy does not work with sandstorm"
  https://redmine.lighttpd.net/issues/2913
5 years ago
Glenn Strauss 7a7f4f987a [mod_openssl] no renegotiation in TLS 1.3 (fixes #2912)
x-ref:
  "OpenSSL 1.1.1: renegotiation initiated by client, killing connection"
  https://redmine.lighttpd.net/issues/2912
5 years ago
Glenn Strauss 4674d2d180 [core] fix missing param from prev commit 5 years ago
Glenn Strauss 877ac2942a [core] better consistency in buffer_is_equal*()
buffer_is_equal_caseless_string() now correctly matches against
the string only up to the provided string length, since the
string might not be '\0' terminated.
5 years ago
Glenn Strauss 7af5ba92ed [core] PATH_INFO calculation when basedir is "/" (fixes #2911)
PATH_INFO calculation when basedir is "/" or empty

x-ref:
  "pathinfo not recognized if basedir is empty"
  https://redmine.lighttpd.net/issues/2911
5 years ago
Glenn Strauss e3c39f5cbc [meson] build fixes for libmariadb and libsasl2
(commented out test for libmysqlclient in favor of libmariadb)
5 years ago
Glenn Strauss d6bd929e5d [build] put request.c in common src
put request.c in common src for CMake, SCons, and meson builds
(request.c is already in common source list in Makefile.am)
5 years ago
Glenn Strauss 233db8d668 [TLS] sys-crypto.h abstraction
(add the header)
5 years ago
Glenn Strauss 368630d925 [TLS] sys-crypto.h abstraction 5 years ago
Glenn Strauss e1f21b2adb [mod_secdownload] support if HMAC() is a macro
support if HMAC() is a macro, which may not handle CONST_BUF_LEN()
expanding to two arguments
5 years ago
Glenn Strauss 5b327e0089 [multiple] quiet compiler warnings --without-pcre
quiet compiler warnings for ./configure --without-pcre
5 years ago
Glenn Strauss 0257c822c0 [core] quiet coverity false positive 5 years ago
Glenn Strauss 070ce5b618 [mod_deflate] null-check to quiet coverity warning 5 years ago