Glenn Strauss
1539cbfdc1
[core] perf: chunkqueue buffers already sized up
...
provide new interface for sizing to even larger if very large request
(chunkqueue_prepend_buffer_open_sz())
2018-11-12 21:56:05 -05:00
Glenn Strauss
f1e5f74f8f
[mod_webdav] return 403 if file should exist
...
return 403 if file should exist for PROPPATCH or LOCK, but stat fails
2018-11-12 21:56:05 -05:00
Glenn Strauss
a1cda77f9b
[mod_openssl] prefer using TLS_server_method()
...
prefer TLS_server_method() instead of SSLv23_server_method()
(SSLv23_server_method() is deprecated in openssl 1.1.0)
2018-11-12 21:56:05 -05:00
Glenn Strauss
aa00359e6c
[mod_cgi] perf: use stat_cache for cgi handler
2018-11-12 21:56:05 -05:00
Glenn Strauss
d182e90bb1
[mod_openssl] SSL_read before second SSL_shutdown
...
call SSL_read() before calling SSL_shutdown() a second time.
Drain SSL read buffers in case pending records need processing.
x-ref:
"New session ticket breaks bidirectional shutdown of TLS 1.3 connection"
https://github.com/openssl/openssl/issues/6262
reported to lighttpd by intexk
https://www.lighttpd.net/2018/10/14/1.4.51/
2018-11-12 21:56:05 -05:00
Glenn Strauss
89062d8134
[mod_openssl] move SSL_shutdown() to separate func
...
mod_openssl_close_notify()
2018-11-12 21:56:05 -05:00
Rosen Penev
bc91bbd0c6
[core] Don't call RAND_cleanup with OpenSSL 1.1.x
...
RAND_cleanup is deprecated and does nothing with 1.1.x.
It also breaks with OpenSSL compiled with no deprecated APIs.
(-DOPENSSL_API_COMPAT=<version>)
github: closes #93
2018-11-12 21:56:05 -05:00
Glenn Strauss
6dcdc1af18
[mod_fastcgi,mod_scgi] perf: env accumulation
2018-11-12 21:56:05 -05:00
Glenn Strauss
407b4d140b
[mod_cgi] perf: reuse buffers for creating CGI env
2018-11-12 21:56:05 -05:00
Glenn Strauss
e0dbff4750
[core] slightly simpler flag append to string
2018-11-12 21:56:05 -05:00
Glenn Strauss
5fe9339942
[core] perf: inline buffer_append_string_buffer()
2018-11-12 21:56:05 -05:00
Glenn Strauss
8c0792a58c
[multiple] better packing of struct chunk
...
remove c->file.name
previous commit modified c->file.name to share buffer with c->mem
2018-11-12 21:56:05 -05:00
Glenn Strauss
3d8d56d8de
[multiple] perf: reuse large buffers w/ backend
2018-11-12 21:56:05 -05:00
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
2018-11-12 08:25:28 -05:00
Glenn Strauss
c79bc31609
[mod_fastcgi] perf: reduce data copies
...
http_chunk_transfer_cqlen()
2018-11-12 08:25:05 -05:00
Glenn Strauss
2df8f9ebf4
[mod_fastcgi] perf: reduce data copies
...
reduce data copies while reading FastCGI packets from FastCGI backend
2018-11-12 08:25:05 -05:00
Glenn Strauss
f934615466
[core] permit env vars to be set with blank value
...
(regression in lighttpd 1.4.51)
2018-11-12 08:25:05 -05:00
Glenn Strauss
f410431b58
[multiple] perf: use larger initial backend buffer
...
use larger initial backend buffer if the client request is large
2018-11-12 08:25:01 -05:00
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)
2018-10-29 09:00:46 -04:00
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)
2018-10-29 09:00:46 -04:00
Glenn Strauss
a9ae35128d
[core] chunk.c code reuse
2018-10-28 10:00:03 -04:00
Glenn Strauss
61e507bfe5
[core] perf: better buf reuse reading from backend
2018-10-28 02:38:10 -04:00
Glenn Strauss
40d3408328
[core] perf: append response directly into write q
...
prepend non-dynamic response directly into write queue chunkqueue
2018-10-28 02:38:10 -04:00
Glenn Strauss
758174ecbc
[core] perf: specialized func for array sorting
...
specialized func for array sorting for use in binary search
2018-10-28 02:38:10 -04:00
Glenn Strauss
59a71815dc
[core] perf: copy small strings; extend last chunk
...
copy small strings; extend last chunk
(instead of creating new, tiny chunk)
2018-10-28 02:38:06 -04:00
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)
2018-10-27 14:00:08 -04:00
Glenn Strauss
23c72fc606
[core] perf: prepend headers directly into write q
...
prepend response headers directly into write queue chunkqueue
2018-10-27 14:00:08 -04:00
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)
2018-10-27 11:40:57 -04:00
Glenn Strauss
2e23b43d12
[core] perf: buffer_align_size() identity if align
...
use identity if requested size is already aligned to BUFFER_PIECE_SIZE
2018-10-27 11:40:54 -04:00
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
2018-10-25 03:19:16 -04:00
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
2018-10-25 00:57:07 -04:00
Glenn Strauss
15277bf9e1
[core] perf: one-element cache for host normalize
...
one-element cache for http_request_host_normalize() on IP address
2018-10-24 00:16:14 -04:00
Glenn Strauss
babf8112f7
[core] perf: buffer_free_ptr() __attribute__ cold
2018-10-22 20:52:01 -04:00
Glenn Strauss
062089ff14
[core] perf: array_reset_data_strings()
...
array_reset_data_strings() specialization
2018-10-22 20:28:53 -04:00
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.
2018-10-21 11:14:08 -04:00
Glenn Strauss
3d60d8535f
[build] Fix unportable test(1) operator
...
(thx Thomas Klausner)
2018-10-16 09:59:43 -04:00
Glenn Strauss
c8136a66fe
[core] typo in trace
2018-10-16 08:19:56 -04:00
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())
2018-10-15 00:15:13 -04:00
Glenn Strauss
c9a64d94fc
- next is 1.4.52
2018-10-14 18:34:55 -04:00
Glenn Strauss
0828010eb6
[doc] NEWS
2018-10-14 18:25:36 -04:00
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
2018-10-14 17:29:10 -04:00
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
2018-10-10 11:56:46 -04:00
Glenn Strauss
082b485802
[mod_openssl] wolfSSL does not support SSLv2
2018-10-08 01:32:42 -04:00
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
2018-10-07 23:47:56 -04:00
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)
2018-10-07 23:47:56 -04:00
Glenn Strauss
923b321094
[build] meson support for wolfSSL
...
meson.build needed to change some args to lists to support meson objects
2018-10-07 23:47:56 -04:00
Glenn Strauss
a950ae15ca
[build] SCons support for wolfSSL
2018-10-07 23:47:56 -04:00
Glenn Strauss
778b07a034
[build] automake support for wolfSSL
2018-10-07 23:47:56 -04:00
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
2018-10-07 20:10:14 -04:00
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()
2018-10-07 20:10:14 -04:00