summaryrefslogtreecommitdiff
path: root/NEWS
Commit message (Collapse)AuthorAgeFilesLines
...
* [doc] NEWSGlenn Strauss2016-06-261-0/+13
|
* [doc] NEWSGlenn Strauss2016-06-041-0/+20
|
* [doc] NEWSGlenn Strauss2016-05-101-0/+5
|
* [doc] NEWSGlenn Strauss2016-05-021-0/+7
|
* [doc] NEWSGlenn Strauss2016-04-281-0/+10
|
* [doc] NEWSGlenn Strauss2016-04-251-0/+9
|
* [core] compile with upcoming openssl 1.1.0 release (fixes #2727)Glenn Strauss2016-04-241-0/+1
| | | | | | | | (thx falemagn) x-ref: "Won't compile with OpenSSL 1.1.0" https://redmine.lighttpd.net/issues/2727
* [core] retry tempdirs on partial write, ENOSPC (fixes #2588)Glenn Strauss2016-04-181-0/+1
| | | | | | | | | | | | | Previous code would fail on partial write, EINTR, and ENOSPC. Upon any of the above errors, this patch tries next tempdir in list, if list of tempdirs provided by config option server.upload-dirs x-ref: "Problem when uploading large files" https://redmine.lighttpd.net/issues/2588 github: Closes #54
* [config] server.listen-backlog option (fixes #1825, #2116)Glenn Strauss2016-04-181-0/+1
| | | | | | | | | | | | | | | | See doc/config/lighttpd.conf for explanation of listen() backlog queue Additionally, mod_fastcgi and mod_scgi backend servers can now also be configured with separate listen-backlog settings per server x-ref: "add server.listen-backlog option instead of hard-coded value (128 * 8) for listen()" https://redmine.lighttpd.net/issues/2116 "Don't disable backend when overloaded" https://redmine.lighttpd.net/issues/1825 github: Closes #50
* [core] open fd when appending file to cq (fixes #2655)Glenn Strauss2016-04-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http_chunk_append_file() opens fd when appending file to chunkqueue. Defers calculation of content length until response is finished. This reduces race conditions pertaining to stat() and then (later) open(), when the result of the stat() was used for Content-Length or to generate chunked headers. Note: this does not change how lighttpd handles files that are modified in-place by another process after having been opened by lighttpd -- don't do that. This *does* improve handling of files that are frequently modified via a temporary file and then atomically renamed into place. mod_fastcgi has been modified to use http_chunk_append_file_range() with X-Sendfile2 and will open the target file multiple times if there are multiple ranges. Note: (future todo) not implemented for chunk.[ch] interfaces used by range requests in mod_staticfile or by mod_ssi. Those uses could lead to too many open fds. For mod_staticfile, limits should be put in place for max number of ranges accepted by mod_staticfile. For mod_ssi, limits would need to be placed on the maximum number of includes, and the primary SSI file split across lots of SSI directives should either copy the pieces or perhaps chunk.h could be extended to allow for an open fd to be shared across multiple chunks. Doing either of these would improve the performance of SSI since they would replace many file opens on the pieces of the SSI file around the SSI directives. x-ref: "Serving a file that is getting updated can cause an empty response or incorrect content-length error" https://redmine.lighttpd.net/issues/2655 github: Closes #49
* [mod_indexfile] save physical path to env (fixes #448, #892)Glenn Strauss2016-04-141-0/+1
| | | | | | | save physical path to environment (PATH_TRANSLATED_DIRINDEX) when index generator is full path (not relative path) fix uri.path when index generator is full path (not relative path)
* [mod_redirect,mod-rewrite] short-circuit if blank replacement (fixes #2085)Glenn Strauss2016-04-141-0/+1
| | | | | | x-ref: "null redirects for mod_redirect" https://redmine.lighttpd.net/issues/2085
* [mod_ssi] config ssi.exec (fixes #2051)Glenn Strauss2016-04-141-0/+1
| | | | | | | | (thx benbrown) x-ref: "mod_ssi Add configuration item to disable SSI exec." https://redmine.lighttpd.net/issues/2051
* [mod_ssi] config ssi.conditional-requestsfbrosson2016-04-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: A new SSI directive, "ssi.conditional-requests", allows to inform lighttpd which SSI pages should be considered as cacheable and which should not. In particular, the "ETag" & "Last-Modified" headers will only be sent for those SSI pages for which the directive is enabled. Long description: "ETag" and "Last-Modified" headers were being sent for all SSI pages, regardless of whether they were cacheable or not. And yet, there was no cache validation at all for any SSI page. This commit fixes these two minor issues by adding a new directive, "ssi.conditional-requests", which allows to specify which SSI pages are cacheable and which are not, and by adding cache validation to those SSI pages which are cacheable. And since sending ETags for non-cacheable documents is not appropriate, they are no longuer computed nor sent for those SSI pages which are not cacheable. Regarding the "Last-Modified" header for non-cacheable documents, the standards allow to either send the current date and time for that header or to simply skip it. The approach chosen is to not send it for non-cacheable SSI pages. "ETag" and "Last-Modified" headers are therefore only sent for an SSI page if ssi.conditional-requests is enabled for that page. The ssi.conditional-requests directive can be enabled or disabled globally and/or in any context. It is disabled by default. An index.shtml which only includes deterministic SSI commands such as: <!--#echo var="LAST_MODIFIED"--> is a trivial example of a dynamic SSI page that is cacheable.
* [core] setrlimit max-fds <= rlim_max for non-root (fixes #2723)Glenn Strauss2016-04-131-0/+1
| | | | | | x-ref: "setrlimit can increase RLIMIT_NOFILE up to rlim_max for non-root" https://redmine.lighttpd.net/issues/2723
* [core] define __STDC_WANT_LIB_EXT1__ (fixes #2722)Glenn Strauss2016-04-131-0/+1
| | | | | | x-ref: "define __STDC_WANT_LIB_EXT1__ for memset_s()" https://redmine.lighttpd.net/issues/2722
* [mod_dirlisting] class for dir <tr> (fixes #2304)Glenn Strauss2016-04-131-0/+1
| | | | | | x-ref: "special class for directories tr's in directory listing" https://redmine.lighttpd.net/issues/2304
* [mod_status] table w/ count of con states (fixes #2427)Glenn Strauss2016-04-131-0/+1
| | | | (replaces "legend")
* [mod_status] page refresh option (fixes #2170)Glenn Strauss2016-04-131-0/+1
| | | | | | | | e.g. http://server-address/server-status?refresh=10 x-ref: "server-status page should have an automatic reload" https://redmine.lighttpd.net/issues/2170
* [mod_expire] reset caching response headers for error docs (fixes #1919)Glenn Strauss2016-04-131-0/+1
| | | | | | | | | | remove Cache-Control and Expires headers before handling error docs (caching headers may have been set by mod_expire before http status was determined to be an error) x-ref: "mod_expires sends headers on 404 responses" https://redmine.lighttpd.net/issues/1919
* [mod_webdav] readdir POSIX compat (fixes #1826)Glenn Strauss2016-04-131-0/+1
| | | | | | | | do not expect '.' to be part of dir listing x-ref: "mod_webdav readdir POSIX compatibility issue" https://redmine.lighttpd.net/issues/1826
* [mod_extforward] reset cond_cache for scheme (fixes #1499)Glenn Strauss2016-04-131-0/+1
| | | | | | | | | bug #1499 was mostly fixed in 05858f6c This patch additionally resets the cond_cache since scheme might change x-ref: "HTTPS env var should be "on" when using mod_extforward and the X-Forwarded-Proto header is set." https://redmine.lighttpd.net/issues/1499
* [mod_magnet] rename var for clarity (fixes #1483)Glenn Strauss2016-04-131-0/+1
| | | | | | | | "length" argument is more accurately described as 0-index end of range x-ref: "magnet offset > length bug" https://redmine.lighttpd.net/issues/1483
* [mod_auth] send charset="UTF-8" in WWW-Authenticate (fixes #1468)Glenn Strauss2016-04-121-0/+1
| | | | | | | | | | | | | https://tools.ietf.org/html/rfc7616 and https://tools.ietf.org/html/rfc7617 (September 2015) update Digest and Basic auth to allow server to recommend charset which should be used by client. http://stackoverflow.com/questions/702629/utf-8-characters-mangled-in-http-basic-auth-username x-ref: "LDAP UTF-8 encoding" https://redmine.lighttpd.net/issues/1468
* [mod_cgi] always set QUERY_STRING (fixes #1339)Glenn Strauss2016-04-121-0/+1
| | | | | | | | (thx alexo) x-ref: "lighttpd doesn't set empty QUERY_STRING in cgi environment" https://redmine.lighttpd.net/issues/1339
* [mod_fastcgi,mod_scgi] check for spawning on same unix socket (fixes #319)Glenn Strauss2016-04-081-0/+1
| | | | | | | | error if unix socket path is duplicated (does not check across modules, but will detect duplicated unix socket paths within fastcgi directives, and separately, duplicated unix socket paths within scgi directives)
* [core] clean up srv before exiting for lighttpd -[vVh]Glenn Strauss2016-04-011-0/+1
| | | | | | From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3138 152afb58-edef-0310-8abb-c4023f1b3aa9
* [stream] fstat() after open() to obtain file sizeGlenn Strauss2016-04-011-0/+1
| | | | | | | | | | | Common case is on non-empty files, and doing fstat() after open() eliminates ToC-ToU between stat() and then open(). While file size of the target file might still change, the fstat() is on the opened file, and can not be on different file (which was possible with stat()) From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3137 152afb58-edef-0310-8abb-c4023f1b3aa9
* use li_[iu]tostrn() instead of li_[iu]tostr()Glenn Strauss2016-04-011-0/+1
| | | | | | From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3136 152afb58-edef-0310-8abb-c4023f1b3aa9
* pass buf size to li_tohex()Glenn Strauss2016-04-011-0/+1
| | | | | | | | | also change passing of fixed-sized arrays: need to pass pointer to array as otherwise size does not get enforced From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3135 152afb58-edef-0310-8abb-c4023f1b3aa9
* [mod_status] use snprintf() instead of sprintf()Glenn Strauss2016-04-011-0/+1
| | | | | | From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3134 152afb58-edef-0310-8abb-c4023f1b3aa9
* [mod_webdav] allow Depth: Infinity lock on file (fixes #2296)Glenn Strauss2016-04-011-0/+1
| | | | | | | | | | (still not supporting Depth: Infinity on directories) patch by mstorsjo submitted as part of feature request #1953 From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3133 152afb58-edef-0310-8abb-c4023f1b3aa9
* [stat] mimetype.xattr-name global config option (fixes #2631)Glenn Strauss2016-03-261-0/+1
| | | | | | | | | | | | | For backwards compatibility with existing lighttpd configs, default is mimetype.xattr-name = "Content-Type" Those who wish to use the freedesktop.org definition of xattr mimetype can set the following in the global lighttpd config: mimetype.xattr-name = "user.mime_type" From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3131 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] lighttpd -tt performs preflight startup checks (fixes #411)Glenn Strauss2016-03-261-0/+1
| | | | | | | | | | | | | | | lighttpd -t loads config file and performs syntax check lighttpd -tt (new) performs preflight startup checks, including loading and initializing modules, but skipping any potentially destructive actions which might affect an already running server (separate instance). These currently include: - skipping pidfile modification - skipping bind() to network sockets - skipping open of error and access logs From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3130 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] fixed the loading for default modules if they are specified explicitlyJan Kneschke2016-03-261-0/+1
| | | | | | | | backported 1836 from trunk From: Jan Kneschke <jan@kneschke.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3129 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] respond 411 Length Required if request has Transfer-Encoding: chunked ↵Glenn Strauss2016-03-261-0/+1
| | | | | | | | | | (fixes #631) lighttpd does not currently support request body transfer-codings From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3128 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] wait for grandchild to be ready when daemonizing (fixes #2712, thx ↵Glenn Strauss2016-03-261-0/+1
| | | | | | | | pasdVn) From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3127 152afb58-edef-0310-8abb-c4023f1b3aa9
* [mod_proxy] accept LF delimited headers, not just CRLF (fixes #2594)Glenn Strauss2016-03-261-0/+1
| | | | | | From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3126 152afb58-edef-0310-8abb-c4023f1b3aa9
* [config] warn if server.upload-dirs has non-existent dirs (fixes #2508)Glenn Strauss2016-03-261-0/+1
| | | | | | | | | Warn at startup if any dirs in server.upload-dirs do not exist. Take server.chroot into account, if set. From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3125 152afb58-edef-0310-8abb-c4023f1b3aa9
* [mod_ssi] Add SSI vars SCRIPT_{URI,URL} and REQUEST_SCHEME (fixes #2721)fbrosson2016-03-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a proposal to add to lighttpd the famous SSI variables SCRIPT_URI and SCRIPT_URL (known to Apache users), as well as a bonus ENV variable called REQUEST_SCHEME. SCRIPT_URI and SCRIPT_URL will be available as SSI variables from within documents handled by mod_ssi. They can be used like any other SSI var with the "#echo var" command: <!--#echo var="SCRIPT_URI"--> <!--#echo var="SCRIPT_URL"--> Webmasters willing to display links to the W3C Validator will be able to use: <a href="http://validator.w3.org/check?uri=<!--#echo var="SCRIPT_URI"-->">…</a> instead of the generic http://validator.w3.org/check?uri=referer link which does not work on some (most?) browsers which do not send referers when the link itself resides in a document sent through https. REQUEST_SCHEME will be available both as an environment variable. It is defined as "http" or "https", depending on the scheme of the connection. It is safe to use this name as it does not conflict with any existing variable on Apache or Nginx. This is slightly different from the HTTPS var which is often added by webadmins on their server's configuration. EDIT: Some Apache modules also define REQUEST_SCHEME with the same possible values as this proposal. From: fbrosson <fbrosson@users.noreply.github.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3124 152afb58-edef-0310-8abb-c4023f1b3aa9
* add NEWS entry for previous commitStefan Bühler2016-03-261-0/+1
| | | | | | From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3123 152afb58-edef-0310-8abb-c4023f1b3aa9
* [buffer] refactor buffer_path_simplify (fixes #2560)Stefan Bühler2016-03-251-0/+1
| | | | | | | | | | | | | | | There actually was one bug: if the input consisted only of spaces, it would read one byte too much. `pre` was splitted into `pre2` and (already existing) `pre1` - the two characters which were read before the current one in `c`. Restructuring the loop eliminated some code before the loop, which was similar to the one at the end of the loop. From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3120 152afb58-edef-0310-8abb-c4023f1b3aa9
* [unittests] add test_buffer and test_base64 unit testsStefan Bühler2016-03-251-0/+1
| | | | | | From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3118 152afb58-edef-0310-8abb-c4023f1b3aa9
* [base64] fix crash due to broken force_assertAndrey Mnatsakanov2016-03-231-0/+1
| | | | | | | | | | if the input to `li_to_base64_no_padding` has length 3*n, `out_tuple_remainder` = `in_tuple_remainder` = 0, and `4*full_tuples == 4*full_tuples + out_tuple_remainder` From: Andrey Mnatsakanov <andrey.mnatsakanov@gmail.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3117 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] replace array weakref with vectorStefan Bühler2016-03-191-0/+1
| | | | | | From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3116 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] add generic vector implementationStefan Bühler2016-03-191-0/+1
| | | | | | From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3115 152afb58-edef-0310-8abb-c4023f1b3aa9
* consistent inclusion of config.h at top of files (fixes #2073)Glenn Strauss2016-03-191-0/+1
| | | | | | From: Glenn Strauss <gstrauss@gluelogic.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3113 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] truncate pidfile on exit (fixes #2695)Kyle J. McKay2016-03-191-0/+1
| | | | | | | | | | | | | | | | | | | | If the server has changed its uid or is running in a chroot it may be unable to remove the pid file when it exits. However, if it holds on to an open handle to the pid file that has write permission, it will be able to truncate the pid file to 0 bytes in length. Most monitoring software recognizes a 0-length pid file as indicating there is no process running. Therefore always attempt to truncate the pid file before trying to remove it so that it's not left containing the pid of a process that is no longer running. Signed-off-by: Kyle J. McKay <mackyle@gmail.com> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3112 152afb58-edef-0310-8abb-c4023f1b3aa9
* [core] fix request_start in keep-alive requests to mark time when received ↵Stefan Bühler2016-03-191-0/+1
| | | | | | | | first byte (fixes #2412) From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3111 152afb58-edef-0310-8abb-c4023f1b3aa9
* [autobuild] use AC_CANONICAL_HOST instead of AC_CANONICAL_TARGET (fixes #1866)Stefan Bühler2016-03-191-0/+1
| | | | | | From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3110 152afb58-edef-0310-8abb-c4023f1b3aa9