|
Revision tags: lighttpd-1.4.69 |
|
| #
7ec82a55 |
| 23-Jan-2023 |
Glenn Strauss <[email protected]> |
[core] disable sendfile() on TARGET_OS_IPHONE
x-ref: https://redmine.lighttpd.net/boards/3/topics/10842 https://github.com/ndfred/iperf-ios/issues/17 https://github.com/dotnet/runtime/pull/694
[core] disable sendfile() on TARGET_OS_IPHONE
x-ref: https://redmine.lighttpd.net/boards/3/topics/10842 https://github.com/ndfred/iperf-ios/issues/17 https://github.com/dotnet/runtime/pull/69436
show more ...
|
|
Revision tags: lighttpd-1.4.68, lighttpd-1.4.67, lighttpd-1.4.66, lighttpd-1.4.65 |
|
| #
2d1b1672 |
| 13-Feb-2022 |
Glenn Strauss <[email protected]> |
[core] chunk_file_pread() to wrap pread()
|
| #
e05ce805 |
| 08-Feb-2022 |
Glenn Strauss <[email protected]> |
[multiple] shared code for struct chunk and mmap
chunkqueue_chunk_file_view()
reduces size of struct chunk
use mmap with mod_deflate libdeflate, if mmap available, even when lighttpd not built w
[multiple] shared code for struct chunk and mmap
chunkqueue_chunk_file_view()
reduces size of struct chunk
use mmap with mod_deflate libdeflate, if mmap available, even when lighttpd not built with --enable-mmap
avoid using mmap on temp files in chunkqueue (c->file.is_temp) since pread() with a reasonable block size is typically as fast or faster than mmap on files read sequentially and used only once, especially when writing results to limited-size socket buffers (and lighttpd temp files are, in most cases, by default about 1 MB) (Exception: sometimes mmap is used for convenience or to fulfill a requirement, e.g. one-shot libdeflate in mod_deflate) (There are many factors which influence speed of mmap versus pread, so this should not be construed as generic usage advice.)
show more ...
|
| #
6cd3b5f8 |
| 06-Feb-2022 |
Glenn Strauss <[email protected]> |
[multiple] use new sys_setjmp_eval3() interface
wrap system os setjmp or compiler try/catch and access mmap inside callback to protect against SIGBUS (or _WIN32 EXCEPTION_IN_PAGE_ERROR)
|
| #
a314b8d0 |
| 06-Feb-2022 |
Glenn Strauss <[email protected]> |
[core] network_write_file_chunk_remap separate fn
|
|
Revision tags: lighttpd-1.4.64, lighttpd-1.4.63, lighttpd-1.4.62, lighttpd-1.4.61, lighttpd-1.4.60 |
|
| #
042622c8 |
| 28-Sep-2021 |
Glenn Strauss <[email protected]> |
[core] use pread() to skip lseek()
|
| #
1cd73b08 |
| 15-Jun-2021 |
Glenn Strauss <[email protected]> |
[core] move backtrace and assert macros to ck.[ch]
|
| #
af3df29a |
| 09-Jun-2021 |
Glenn Strauss <[email protected]> |
[multiple] reduce redundant NULL buffer checks
This commit is a large set of code changes and results in removal of hundreds, perhaps thousands, of CPU instructions, a portion of which are on hot co
[multiple] reduce redundant NULL buffer checks
This commit is a large set of code changes and results in removal of hundreds, perhaps thousands, of CPU instructions, a portion of which are on hot code paths.
Most (buffer *) used by lighttpd are not NULL, especially since buffers were inlined into numerous larger structs such as request_st and chunk.
In the small number of instances where that is not the case, a NULL check is often performed earlier in a function where that buffer is later used with a buffer_* func. In the handful of cases that remained, a NULL check was added, e.g. with r->http_host and r->conf.server_tag.
- check for empty strings at config time and set value to NULL if blank string will be ignored at runtime; at runtime, simple pointer check for NULL can be used to check for a value that has been set and is not blank ("") - use buffer_is_blank() instead of buffer_string_is_empty(), and use buffer_is_unset() instead of buffer_is_empty(), where buffer is known not to be NULL so that NULL check can be skipped - use buffer_clen() instead of buffer_string_length() when buffer is known not to be NULL (to avoid NULL check at runtime) - use buffer_truncate() instead of buffer_string_set_length() to truncate string, and use buffer_extend() to extend
Examples where buffer known not to be NULL: - cpv->v.b from config_plugin_values_init is not NULL if T_CONFIG_BOOL (though we might set it to NULL if buffer_is_blank(cpv->v.b)) - address of buffer is arg (&foo) (compiler optimizer detects this in most, but not all, cases) - buffer is checked for NULL earlier in func - buffer is accessed in same scope without a NULL check (e.g. b->ptr)
internal behavior change: callers must not pass a NULL buffer to some funcs. - buffer_init_buffer() requires non-null args - buffer_copy_buffer() requires non-null args - buffer_append_string_buffer() requires non-null args - buffer_string_space() requires non-null arg
show more ...
|
| #
01fdccd8 |
| 24-May-2021 |
Glenn Strauss <[email protected]> |
[core] network_write prefer writev() over write()
When writev() is available, always use writev() instead of write() (Silently ignores config option to use write() if writev() is available) (Still u
[core] network_write prefer writev() over write()
When writev() is available, always use writev() instead of write() (Silently ignores config option to use write() if writev() is available) (Still uses sendfile() instead of writev() when config selects sendfile)
show more ...
|
| #
c5dd8905 |
| 24-May-2021 |
Glenn Strauss <[email protected]> |
[core] network_write optimizations
more shared code, better asm
|
|
Revision tags: lighttpd-1.4.59, lighttpd-1.4.58, lighttpd-1.4.57, lighttpd-1.4.56, lighttpd-1.4.56-rc7, lighttpd-1.4.56-rc6, lighttpd-1.4.56-rc5, lighttpd-1.4.56-rc4, lighttpd-1.4.56-rc3, lighttpd-1.4.56-rc2, lighttpd-1.4.56-rc1 |
|
| #
3f1a12e5 |
| 14-Oct-2020 |
Glenn Strauss <[email protected]> |
[multiple] remove chunk file.start member
c->offset is now offset into file c->file.length is end of octets to send (end pos + 1) c->file.length - c->offset is num of octets to send
|
| #
7c1e8129 |
| 01-Oct-2020 |
Glenn Strauss <[email protected]> |
[core] handle unexpected EOF reading FILE_CHUNK
(replace existing check which suffered from ToC-ToU race condition) enhances logic from 2015 commit 593599f1 and avoids repeated fstat() checks when s
[core] handle unexpected EOF reading FILE_CHUNK
(replace existing check which suffered from ToC-ToU race condition) enhances logic from 2015 commit 593599f1 and avoids repeated fstat() checks when sending large files
For mmap(), lighttpd catches SIGBUS if file is (externally) truncated and lighttpd attempts to access bytes in a read-only mapping more than a memory page boundary following the end of the file.
For sendfile(), lighttpd returns an error if sendfile() reports no error and that no bytes have been sent after lighttpd attempts to send a non-zero number of bytes.
show more ...
|
| #
c752d469 |
| 22-Feb-2020 |
Glenn Strauss <[email protected]> |
[multiple] correct misspellings in comments
x-ref: "Script for fixing spelling errors with codespell" https://redmine.lighttpd.net/boards/3/topics/8947
|
|
Revision tags: lighttpd-1.4.55 |
|
| #
0ff60d82 |
| 08-Dec-2019 |
Glenn Strauss <[email protected]> |
[multiple] rename r to rc rv rd wr to be different
variable rename
|
| #
010c2894 |
| 25-Nov-2019 |
Glenn Strauss <[email protected]> |
[multiple] prefer (connection *) to (srv *)
convert all log_error_write() to log_error() and pass (log_error_st *)
use con->errh in preference to srv->errh (even though currently same)
avoid passi
[multiple] prefer (connection *) to (srv *)
convert all log_error_write() to log_error() and pass (log_error_st *)
use con->errh in preference to srv->errh (even though currently same)
avoid passing (server *) when previously used only for logging (errh)
show more ...
|
|
Revision tags: lighttpd-1.4.54, lighttpd-1.4.53, lighttpd-1.4.52 |
|
| #
8c0792a5 |
| 07-Nov-2018 |
Glenn Strauss <[email protected]> |
[multiple] better packing of struct chunk
remove c->file.name previous commit modified c->file.name to share buffer with c->mem
|
|
Revision tags: lighttpd-1.4.51, lighttpd-1.4.50, lighttpd-1.4.49, lighttpd-1.4.48 |
|
| #
142971a8 |
| 30-Oct-2017 |
Glenn Strauss <[email protected]> |
[core] consolidate backend network write handlers
network_write.[ch] isolates various write, writev, sendfile wrappers
|
|
Revision tags: lighttpd-1.4.47, lighttpd-1.4.46, lighttpd-1.4.45, lighttpd-1.4.44, lighttpd-1.4.43, lighttpd-1.4.42, lighttpd-1.4.41, lighttpd-1.4.40 |
|
| #
c489dd6c |
| 02-Jul-2016 |
Glenn Strauss <[email protected]> |
[cygwin] minor: fix compiler warning
|
| #
8abd06a7 |
| 19-Mar-2016 |
Glenn Strauss <[email protected]> |
consistent inclusion of config.h at top of files (fixes #2073)
From: Glenn Strauss <[email protected]>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3113 152afb58-edef-03
consistent inclusion of config.h at top of files (fixes #2073)
From: Glenn Strauss <[email protected]>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3113 152afb58-edef-0310-8abb-c4023f1b3aa9
show more ...
|
|
Revision tags: lighttpd-1.4.39, lighttpd-1.4.38, lighttpd-1.4.37 |
|
| #
593599f1 |
| 22-Aug-2015 |
Stefan Bühler <[email protected]> |
rewrite network (write) backends
From: Stefan Bühler <[email protected]>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3012 152afb58-edef-0310-8abb-c4023f1b3aa9
|
|
Revision tags: lighttpd-1.4.36, lighttpd-1.4.36--rc1 |
|
| #
ad3e93ea |
| 08-Feb-2015 |
Stefan Bühler <[email protected]> |
Use buffer API to read and modify "used" member
- a lot of code tried to handle manually adding terminating zeroes and keeping track of the correct "used" count. Replaced all "external" usages w
Use buffer API to read and modify "used" member
- a lot of code tried to handle manually adding terminating zeroes and keeping track of the correct "used" count. Replaced all "external" usages with simple wrapper functions: * buffer_string_is_empty (used <= 1), buffer_is_empty (used == 0); prefer buffer_string_is_empty * buffer_string_set_length * buffer_string_length * CONST_BUF_LEN() macro - removed "static" buffer hacks (buffers pointing to constant/stack memory instead of malloc()ed data) - buffer_append_strftime(): refactor buffer+strftime uses - li_tohex(): no need for a buffer for binary-to-hex conversion: the output data length is easy to predict - remove "-Winline" from extra warnings: the "inline" keyword just supresses the warning about unused but defined (static) functions; don't care whether it actually gets inlined or not.
From: Stefan Bühler <[email protected]>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2979 152afb58-edef-0310-8abb-c4023f1b3aa9
show more ...
|
| #
4365bdbe |
| 08-Feb-2015 |
Stefan Bühler <[email protected]> |
Remove buffer_prepare_copy() and buffer_prepare_append()
* removed almost all usages of buffer as "memory" (without terminating zero) * refactored cgi variable name encoding
From: Stefan Bühler <
Remove buffer_prepare_copy() and buffer_prepare_append()
* removed almost all usages of buffer as "memory" (without terminating zero) * refactored cgi variable name encoding
From: Stefan Bühler <[email protected]>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2977 152afb58-edef-0310-8abb-c4023f1b3aa9
show more ...
|
|
Revision tags: lighttpd-1.4.35 |
|
| #
b106513e |
| 16-Feb-2014 |
Stefan Bühler <[email protected]> |
[network] check return value of lseek()
From: Stefan Bühler <[email protected]>
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2953 152afb58-edef-0310-8abb-c4023f1b3aa9
|
|
Revision tags: lighttpd-1.4.34, lighttpd-1.4.33, lighttpd-1.4.32, lighttpd-1.4.31, lighttpd-1.4.30 |
|
| #
f434d514 |
| 22-Aug-2011 |
Stefan Bühler <[email protected]> |
Limit amount of bytes we send in one go; fixes stalling in one connection and timeouts on slow systems.
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2801 152afb58-edef-0310-8a
Limit amount of bytes we send in one go; fixes stalling in one connection and timeouts on slow systems.
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2801 152afb58-edef-0310-8abb-c4023f1b3aa9
show more ...
|
|
Revision tags: lighttpd-1.4.29, lighttpd-1.4.28, lighttpd-1.4.27, lighttpd-1.4.26, lighttpd-1.4.25, lighttpd-1.4.24 |
|
| #
22e8b456 |
| 11-Oct-2009 |
Stefan Bühler <[email protected]> |
Fix header inclusion order, always include "config.h" before any system header
git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2624 152afb58-edef-0310-8abb-c4023f1b3aa9
|