lighttpd1.4/ChangeLog

3864 lines
98 KiB
Plaintext
Raw Normal View History

CVS-Version: $Id: ChangeLog,v 1.18 2004/04/09 22:08:19 weigon Exp $
Feature Requests:
* complex
- nested conditionals
- config file per host
- compressing dynamic content (filters)
- limit read-queue to 64k and use traffic-shaping cap
- if fastcgi/cgi are not ready ignore incoming FDEVENT_IN for a while
-> reduce memory usage
- userdir + suphp
-> internal config-hash
- don't strip // from PATHINFO
- TLS
* moderate
- errorlog piping
- access and auth with host, net
- fastcgi-spawn
- suid spawn
- gracefull restart
- mod_accesslog_mysql
- mod_auth_mysql
- IPv6 for FastCGI
- man-page for spawn-fcgi
- server.base-directory
* simple
- file-mapping for alias
- add header for broken requests if debug.request-header-on-error
- IPv6 for FastCGI
- hostnames for remote-FastCGI
- fix remote-fastcgi on freebsd + kqueue
- crash FDEVENT_OUT on FreeBSD
- EPERM on unlink
- cgi exec via shell
- crash in read-post
- same config option twice -> aaa, aaa
- remove default port from Host:
20.02.2005 16:54 - 1.3.11
- request handling
ignore \r\n before request-line in keep-alive requests (Bug #13)
- cgi, fastcgi
added REMOTE_PORT and SERVER_ADDR
fixed check for broken status-code in nph-scripts (Bug #14)
- fastcgi
fixed passing cmdline options the spawned binary (Bug #16)
fixed failed reconnects (Bug #9)
- macos x
fixed build on max
- mod_secdownload
parse conditional secure-download.secret (Bug #8)
- mod_userdir
redirect if username is not followed by / (Bug #15)
13.02.2005 17:33
- mod_auth
fix crash if require, realm or method are empty (Bug #5)
13.02.2005 14:52
- network
handle EPIPE and ECONNRESET as 'client has closed connection' in writev()
(Bug #1)
- macosx
compile error on MacOS X due to missing environ (patch by Johan S<>rensen)
(Bug #2)
- indexfiles
append the detected indexfile only once to uri.path (reported by Thomas
Seifert)
(Bug #3)
06.02.2005 15:16 - 1.3.10
- fastcgi
display a error-message if a hostname if specified in fastcgi.server->host
we need an IP here
- debug
added debug.log-state-handling
- spawn-fcgi
accept a full commandline for spawning
06.02.2005 12:50
- fastcgi
fixed openssl handling
- network_freebsd_sendfilev
gracefull handling of connections closed on client-side
removed debug-message
06.02.2005 01:44 - 1.3.9
- documentation
added docs for SSL setup and mod_status
- fastcgi
fixed config handling on PowerPC for local-spawning
05.02.2005 15:14
- fastcgi
added bin-environment to setup the environment of the spawned process
added bin-copy-environment to copy only the specified set of options
from the old environment
added handling of cmd-line options to bin-path
- setenv
fixed crashed in setenv.add-response-header
04.02.2005 18:09
- configure
fixed docs for --with-mysql
- fastcgi
improved performance of building the header (drop strlen())
04.02.2005 01:59
- cgi
don't send file on error
check if cgi-handler exists before executing it
added support for nph-...
02.02.2005 21:18 - pre-release
- request parsing
handle invalid characters in URI
02.02.2005 15:12
- makefiles
dropped unused header files from the distribution
02.02.2005 14:18
- fastcgi
delete sockets on shutdown
- http/1.1
adding option to disable http/1.1
01.02.2005 12:03
- cygwin
fixed plugins_load to use the right extensions again
removed mmap check
added ssl support
01.02.2005 01:49
- configure
make check for valgrind.h covered by --with-valgrind
- mod_localizer, mod_maps
remove both plugins from the distribution
- file-not-found
handle file not found again
30.01.2005 16:44
- HEAD requests
don't send content on dynamic HEAD requests with status 200
30.01.2005 15:16 - 1.3.8
- network-handler
remove debug output on writev() if the remote side closed the connection
- directory index
handle EACCES correctly
29.01.2005 15:16 - pre-release
- mod_alias
fixed mod_alias + pathinfo handling
- mod_accesslog
added access-log to syslog patch from allan
28.01.2005 17:30
- directory redirect without Host-header
use server-ip instead of client-ip for the Location:
- fastcgi + pathinfo
if fastcgi-auth redirects to a directory which doesn't exist handle it
correctly (bug introduced in 1.3.8)
- requesting directories
clean physical.path if directory is requested and dir-listing is disabled
send 403 again (buf introduced in 1.3.8)
28.01.2005 12:08
- fastcgi
ignore FDEVENT_HUP for unix-sockets as a simple read + timeout will do
the job anyway
22.01.2005 20:28 - pre-release
- fastcgi
send content and headers if authorizer mode is used
use a new connection if connection is died to fastcgi
and we have not used it yet
18.01.2005 21:21 - pre-release
- plugins
added version-id to plugins to detect plugins which are not up-to-date
16.01.2005 23:11
- fastcgi
fixed write-failed after crash of fastcgi-child
16.01.2005 20:43
- setenv
fixed setenv.add-environment
- fastcgi
fixed authorizer + added testcases
16.01.2005 17:40 - pre-release
- mod_status
beautified mod_status
- mod_setenv
added setenv.add-environment
- timeouts
add timeout to read-post
15.01.2005 12:57
- debug
added debug options to log
- missing files
- request header
- response header
- request handling
added a more usefull error message for the status-code changes in the
request parser
- server announcement
set Server: header for dynamic content too
- fastcgi
fixed double free
don't crash on FDEVENT_ERR
added a comment for EAGAIN on connect()
08.01.2005 17:45
- ssl
report an error if ssl.engine is enable but no ssl support compiled in
08.01.2005 12:23
- mod_status
added request time to the output
(late changelog) added host and filename to the output (fobax)
(late changelog) HTMLalized the output (fobax)
06.01.2005 19:51 - pre-release
- error-handler
let the error-handler handle 403 requests too
make the error-handler setable by a module
- error-pages
reworked the error-page handling
05.01.2005 13:10
- keep-alive handling
made sure that keep-alive is really handled correctly
04.01.2005 17:02
- mod_setenv
added a module to added request and response headers on the fly
- error-log
send error log to syslog() if no errorlogfile is specified (again)
02.01.2005 22:44 - pre-release
- response handling
cut of body for status 301, 304 and 205
- buffer
optimized all _hex functions (Silvan Minghetti)
02.01.2005 20:32
- fastcgi
if bin-path is not specified, don't die (bug introduced in the last pre-rel)
- auth
if userfile is empty don't auth.
02.01.2005 19:06
- mod_compress
fixed off by one if cache-dir is not set
02.01.2005 16:10
- conditional config
fixed !~ and !=
- buffer
copy empty buffers correctly
31.12.2004 17:45
- ipv6 + pidfile
don't complain if we can't remove the pidfile (Silvan Minghetti)
remove ipv6 option from the commandline of lighttpd doesn't support
ipv6 (Silvan Minghetti)
31.12.2004 15:41 - pre-release
- kqueue
simplified event handling (adam)
- fastcgi
fixed div-by-zero bugs in the adaptive process spawning
- mysql-vhost
added mysql-vhost (Christer Holgersson)
30.12.2004 19:09
- fastcgi
added adaptive spawning of FastCGI processes
- traffic shaping
added traffic shaping per virtual server
28.12.2004 23:26
- traffic shaping
added traffic shaping per connection
25.12.2004 22:58
- mod_status
fixed status.url again (Timo)
21.12.2004 11:29
- configure
added check for signal and select (compile fix for netbsd 1.4 and 1.5)
11.12.2004 12:38 - 1.3.7
- fastcgi + php
retry to connect to another PHP child if one of them dies after
connect
- cgi + multipart
don't transform CONTENT_TYPE to HTTP_CONTENT_TYPE
- debian
more cleanup, updated changelog, added more deps and suggests
(Chris Brown)
10.12.2004 22:33
- event handler
fixed crashes in kqueue
10.12.2004 13:57 - pre-release
- mod_status
fixed wraparound in total requests and total traffic
- debian
updated licence and packaging
- security
call setgroups() to get rid of all groups
- ssl
handle SSL_shutdown() == 0 correctly
fixed openssl detection in configure
fixed handling of chunked encoding
- request handling
handle Connection: keep-alive correctly (case as not ignored)
21.11.2004 02:39
- windows
merged basic native windows port (compiles with mingw)
20.11.2004 18:43
- conditional
ported
- cgi
- secdownload
- expire
- localizer
- usertrack
- status
- proxy
- server-tag
Server: ... can now be specified by server.tag = "..."
- spawn-fcgi
fixed typo in usage text
- ssl
fixed detection of libs and headers
05.11.2004 16:01
- fastcgi
added more usefull error messages
04.11.2004 23:01
- ssi
added support for ${...}
03.11.2004 14:51 - 1.3.6
- fastcgi
added spawn-fcgi to the distribution
added spawn-local-fastcgi yourself ( bin-path )
03.11.2004 11:22
- accesslog
don't cycle accesslogs of external processes are used
02.11.2004 15:34
- fastcgi
handle END-OF-REQUEST correctly if chunk-encoding is not used
02.11.2004 10:53
- internal redirects
fixed handling of query strings in internal redirects for directories
02.11.2004 09:54 - pre-release
- cgi
add REMOTE_USER, suppress AUTHORIZATION
handle payloads > 4k
- mod_alias
fixed url checking
- follow-symlink
fixed config
31.10.2004 11:30 - 1.3.5
- writev
fixed seg-fault in debug-message if write() fails and LFS is enabled
handle EINTR
- sendfile linux
handle EINTR
31.10.2004 09:09
- freebsd
added missing header in joblist.c
fixed test-scripts for zsh
30.10.2004 22:26
- modules
added mod_userdir and mod_alias
added docs for the new modules
30.10.2004 19:52
- porting
added defines for MAP_FAILED for NetBSD 1.3.x
30.10.2004 18:54 - pre-release
- pipelining
fixed offset calculations
- ipv6
IPv6 might be disabled at compile-time
- rewrite
close mem-leak
- auth
forgot to reset the global-config handler
- symlink
add option to disable follow-symlink
- ssi
added support for exec-cmd
23.10.2004 - 1.3.4
- max-fds
set the upper limit of fds only if server.max-fds is set
23.10.2004 13:49
- accesslog
use a shell to handle accesslog-pipes
22.10.2004 17:00
- accesslog
added logging of user-supplied data via %{...}o and
X-LIGHTTPD-* header
22.10.2004 14:57 - pre-release
- openwrt
fixed configure-checks and Makefile.am's to build cleanly with a
cross-compiler
builds cleanly for openwrt
22.10.2004 13:03
- out-of-fd
improved the out-of-fd handler
- cgi, fastcgi
set SERVER_NAME to server.name or the value submitted by Host:
- error-handler
only set old status code if it wasn't set by a handler
21.10.2004 22:36 - pre-release
- fastcgi
don't crash on out-of-fd condition
- out-of-fd
try handle the out-of-fd condition in a sane way
21.10.2004 15:03
- mod_auth
seperated auth.backend.*.userfile for plain, htpasswd and htdigest
added 'digest-auth' against 'plain-backend'
added auth.debug for debugging
16.10.2004 10:18 - 1.3.3
- mod_simple_vhost, mod_evhost
conditional-ized
- mod_rrdtool
maintain the request-counter for each conditional-config (adam)
14.10.2004 11:30
- accesslogs
cycle all access-logs
- mod_rewrite
tell the user to install pcre.h if he wants to use mod_rewrite
10.10.2004 10:11 - pre-release
- error-handler
added a error-handler for status 404 (server.error-handler-404)
09.10.2004 16:28 - pre-release
- cgi
added support for \n in headers
- mod_auth
added conditional auth
01.10.2004 09:28
- plugins
fixed off by one error in plugin initialization (Mike)
related into a segfault on AMD64
30.09.2004 21:44 - 1.3.2
- file-cache
disabled the file-cache it was taken the wrong files from the cache
30.09.2004 08:39 - 1.3.1
- file-cache
drop a unused file-cache entry after 10 seconds
reuse unused entries
- request-parser
accept IPv6 adresses in Host header
- tests
modified the scripts to work with zsh (check on Linux, Irix and FreeBSD)
26.09.2004 12:28
- comparission function
file-cache has delivering the wrong entry if only the last character of
the filename differed and the filesize was the same.
- cgi + cygwin
cgi need s SYSTEMROOT environment
22.09.2004 08:55
- network
detect of file has been shrinked while we are sending it out and terminate
the connection if would run over the edge
22.09.2004 07:56
- mod rewrite, fastcgi, ...
keep REQUEST_URI after rewrite
21.09.2004 22:49
- fastcgi authorizer
fixed cleanup code (matt)
21.09.2004 20:08
- rrdtool
rrdtool.db-name is now conditional
fixed check if write() failed (adam)
17.09.2004 17:50 - 1.3.0
- rewrite
added url.rewrite-final = ...
17.09.2004 15:55
- code cleanup
integrated the fixes from cygwin into the main tree
- kqueue
init kqueue after daemonizing (broken since 12.09.2004 14:02)
16.09.2004 21:00
- cygwin + macosx
finished the cygwin port
this port seems to fix the problems on macosx too
12.09.2004 14:02
- socket handling
added support to handle more than one server socket
11.09.2004 12:23 - 1.2.8
- EINTR
handle EINTR for linux-sendfile
- configfile
ignore an extra comma at the end of the array declaration
11.09.2004 09:46
- mod_proxy
pass remote-addr as X-Forwarded-For to the real server behind the proxy
- code cleanup
moved all cut'n'paste versions of the inet_ntop cache to inet_ntop_cache.c
- fcgi
don't overwrite the fd in fcgi_establish connection if connect fails. this
results in various problem in other places.
05.09.2004 09:46
- file-cache
cache the mimetype
- last-modified
don't complain if the If-Modified-Since contains a valid comment/option
like <timestamp>; length = ...
05.09.2004 09:13
- expires
overwrite the Expire if it is set by a previous plugin
- conditional config
conditional config as disabled in 1.2.7 by accident
04.09.2004 10:02 - 1.2.7
- mod-proxy
remove the \0 before the post content
- cgi
fixed hanging process if cgi-crash terminates to fast (before we read its
response)
- extented attributes
added xattr support, submitted by Ari
29.08.2004 16:00
- rrdtool
moved the rrdtool support from mod_status into its own module mod_rrdtool
rrdtool.binary = "/usr/bin/rrdtool"
rrdtool.db-name = "/var/www/lighttpd.rrd"
29.08.2004 11:00 - pre-release
- timeouts
server.max-keep-alive-requests = 0 replaces
server.use-keep-alive = "disable"
added
server.max-keep-alive-idle
server.max-read-idle
server.max-write-idle
- docs
added a entry for each config-value into configuration.txt
added simple docs for
rewrite
redirect
compress
cgi
simple-vhost
29.08.2004 10:05
- config options
complain if no configfile is specified
- fastcgi
removed stupid allocation bug which might cause a problem in really rare
cases
26.08.2004 22:06 - 1.2.6
- optimize
use array_strcasecmp() in favour of strcasecmp() as it is slightly
faster.
apply the case-insentive conversion also on the last character. (adam)
sort the checked elements in request.c and filter apply the logic to
compare some less fields, if the header is not used.
improved the config-patch function to use our internal buffer-compare
functions instead of strcmp
22.08.2004 16:09 - pre-release
- cgi
added missing cleanup code
- fastcgi
remove double-free
added handling of EINTR in some places
- leaks
fixed some leaks in the new config code
- array_strcasecmp
fixed alignment in the improved array_strcasecmp function (adam)
20.08.2004 14:46 - pre-release
- performance
optimized a few useless strlen() away as we either know the length from
buffer->used - 1 or by sizeof(str) - 1 if it is constant.
optimized the 'find the \r\n\r\n' function.
improved the array_strcasecmp() based on another idea from (ralf)
- accesslog
enabled the strftime cache again
15.08.2004 23:41
- accesslog
added apache-like CustomLog handling in accesslog.format
accesslog.format = "..."
15.08.2004 21:08
- test-cases
remove testdir
- configfiles
handle escaping of " in strings properly
13.08.2004 12:07
- array
improved inner-loop of array_strcasecmp() (ralf)
11.08.2004 14:14
- fcgi socket
use SUN_LEN if available
- keep-alive
disable keep-alive on request
server.use-keep-alive = "disable"
10.08.2004 15:59 - 1.2.5
- conditional config
mod_fastcgi
mod_rewrite
mod_redirect
mod_access
mod_compress
mod_accesslog
are ported
10.08.2004 13:05
- pipelining
fixed very stupid pipelining bug
09.08.2004 22:07 - pre-release
- conditional config
first code for conditional config
09.08.2004 14:21
- fcgi
fixed access to free()'d memory (doesn't create any harm)
- isdigit, warings
signed -> unsigned for 2 more isdigit() calls (adam)
removed some unused var's if pcre is not available (adam)
08.08.2004 20:57 - pre-release
- debian
added a chmod to /var/log/lighttpd/ (allan)
08.08.2004 12:05
- kqueue
use EV_SET() instead of setting the ev-struct by hand (adam)
- fcgi
fixed the EINPROGRESS handling to use getsockopt (er)
fixed a leak of server is disabled (er)
- solaris 10 port-api
added a skeleton for the sol10 port api
06.08.2004 10:18
- mod_ssi
fix DATE_LOCAL so it displays the correct time zone (Jeremy Hinegardner)
04.08.2004 11:43
- openbsd fixes
dropped usage of MAX() in buffer.c
added prober includes for md5.h if openssl is enabled (brad)
- memory usage
documented the way how lighttpd caches memory blocks
reset the buffers after they have been written by the network-layer
- kqueue
modify fd-bitmask only if kevent succeeded (adam)
03.08.2004 15:09
- mod_compress
compress even if you have no cachedir set
03.08.2004 13:26 - pre-release
- Makefile
fixed dependencies for parallel build in mod_ssi_expr.c
- combo patch
* Tinker with kqueue(). Add a reset method so that the kqueue file
descriptor can be re-enabled after a fork(). Emulate the devpoll driver
in that adds and deletes are sent to the notification mechanism im-
mediately, which should cut down on phantom events. Use
ev->kq_results as a sliding window.
* Change F_SETFD calls to use the preferred FD_CLOEXEC instead of 1.
* Remove unnecessary fdevent fcntl handlers. It appears that the only
driver that needs one is Linux RT signals.
* Quiet compiler warning about unused parameter.
* Set the close-on-exec flag for the /dev/poll and epoll_create() file
descriptors.
* Return failure if /dev/poll could not be opened instead of logging
and continuing.
* Detect EAGAIN after writev() failures. FreeBSD sendfile() doesn't need
protection, as the man page says:
When using a socket marked for non-blocking I/O, sendfile() may send
fewer bytes than requested. In this case, the number of bytes success-
fully written is returned in *sbytes (if specified), and the error
EAGAIN is returned.
(adam, georg, matt)
02.08.2004 18:08
- mod_ssi
check for pcre before compiling the module
- fdevents
dropped fdevent_fcntl added by the last patch (adam)
kqueue: events == FDEVENT_IN -> events & FDEVENT_IN (adam)
31.07.2004 22:07 - 1.2.4
- fdevents
* Test at configure time for kqueue() and <sys/event.h>
* Remove various hard-coded constants from event handlers
* Move maxfds into the event structure, and out of the
fdevent_*_init handlers. Event handlers can use the maxfds
member to size arrays.
* Various event structure renames to discourage clashes
* Remove extra (ignored) call to fdevent_event_next_fdndx() in
the main server loop.
* Wrestle with kqueue(). The implementation has to deal with
phantom events (for fds which have been deleted/closed), similar
to the Linux RT signals code. Like the RT code, it maintains a
bitmask of active fds. After a successful call to kevent(), the
code will compress/overwrite dead events. The other annoyance is
that the handler must track the event filter for each fd, even
though you cannot support both read and write filters for the same
fd in one kqueue. The handler maintains a separate bitmask for fd
filters (1 == EVFILT_IN, 0 == EVFILT_OUT).
(adam)
- server side includes
added native server-side includes based on the docs from apache:
http://httpd.apache.org/docs/mod/mod_include.html
not supported are:
- exec
- nested virtual
- config.errmsg
- echo.encoding
24.07.2004
- fdevents
added a bitset to figure out if we received a event for an unregistered fd
in rt-signal (adam)
- kqueue
added kqueue support (Matt Levine)
13.07.2004 08:58
- configfile
parse keys correctly that contain a digit (Geoff Adams)
- fcgi
fixed large post uploads (Geoff Adams)
fixed uri if docroot is set (Geoff Adams)
03.07.2004 22:50 - 1.2.3
- index-files
rewrite uri.path to the index-file instead of keeping it at .../
this fixes index-file handling in FastCGI/CGI docroot is used
- close-on-exec
enable close-on-exec handling to simplify FD handling in CGI code
- cgi
keep error-log-fd open to catch the error handling for execve()
report error if cgi-exec file doesn't exist
- proxy
pass page-content on error to the user (E.R.)
code cleanup (E.R.)
- ssi
first skeleton of a plugin for ServerSideIncludes
- security
limit the headerlength again to 64k max
03.07.2004 14:23
- configure
fixed compile-check for libpcre if pcre-config doesn't point to /usr/lib
02.07.2004 18:17
- buffers
always allocate a multiply of 64bytes. this should reduce the number of
realloc()s and still doesn't has a too high overhead.
02.07.2004 11:07
- fds
connect stdin, stdout and stderr to /dev/null instead of just closing it
use dup2() instead of dup()
- accesslog
if accesslog.filename starts with a | spawn a process which will get data
in one chunk once in a while
01.07.2004 11:00
- sample config
added text/css and text/javascript mimetypes
28.06.2004 12:18
- proxy module
added a proxy module (based on the fastcgi module) and added some
documentation
25.06.2004 21:41
- last-modified handling
replaced %Z by GMT. otherwise the last-modified check will most often fail.
24.06.2004 20:20
- relax http-parser
don't reply 400 in case of an empty header-field, just ignore it
23.06.2004 22:10
- file-cache
don't cache mmap() for files larger than 64k as we run out of RAM otherwise
too fast (check with some 200mb files)
- 64bit fixes
fixed buffer_equal on sparc64
15.06.2004 19:09 - 1.2.2
- mmap cache
fixed mmap-caching in network_write.c and network_writev.c after a direct
hint by E.Rodichev
- sendfile + linux
check at config-time if sendfile() works on Linux
11.06.2004 15:09
- fcgi + unix sockets
added support for unix domain sockets (spawn-fcgi 1.2.0 required)
10.06.2004 11:49
- configure
use pcre-config to determine the position of the pcre headers
05.06.2004 22:06
- filehandle-cache
remove mmap-segment if filecache gets invalidated
30.05.2004 14:13 - lighttpd 1.2.1
- response headers
request headers that appear twice are grouped together like expected by
the CGI spec (concat with a ", ")
response headers behaved the same way but are not grouped anymore. They
stay seperated. Actually they are concated by \r\n<key>: <value> which is
the same in the end.
- file uploads
the handling of longer post requests is fixed now.
28.05.2004 09:13
- cgi
added support for direct calls to cgi-binary
22.05.2004 21:58
- pipeling
the code cleanup is finished successfully. Now all cases of pipelining are
handle the right way. POST pipelining was still not working up to now.
22.05.2004 12:55
- code cleanup
use the well-tested code from the write-queue as the base for the
read-queues and simplify the pipeline handling alot that way.
20.05.2004 15:08
- network backends
enabled sendfile support again (__FreeBSD__ instead of __freebsd__)
added a mmap cache as part of the filedescriptor cache
added AIX specific send_file() support (untested)
20.05.2004 10:40
- segfaults
fixed some minor segfaults on startup when no config file is used.
17.05.2004 10:58 - lighttpd 1.2.0
- documentation
reformated the documentation the doc/ directory