- periodic update of date strings
- caching of Last-Modified values
- use of smart_str'ings for crafting HTTP header (static files)
and inside make_log_entry
- buffered log writing
- httpd_ntoa is about 8 times faster
Overall improvement: Around 50% faster now
uploads of up to 2GB on 32 bit platforms.
Uploads >16KB are put into a file-backed mmap area.
SG(request_info).content_type got corrupted somewhere. As a workaround,
we provide SAPI with a duplicate of the original string.
IRCG. These could cause thttpd to start a second request in the same
connection context, and thereby causing real damage.
Mozilla 1.0.1 is buggy in that context: When HTTP/1.1 pipelining is
enabled (defaults to off), it will send any number of requests over
a persistent connection (which is fine), even after it has received
a "Connection: close" header field in a subsequent response header.
This blatantly violates RFC 2616, section 8.1.2. Because it cannot
receive any response on the dead connection, the download manager
pops up and tries to download a file (which never arrives).
Also, we don't try to send a 400 message anymore, if the connection
dies.
the patch did not handle pipeling at all, so that some code had to be added
from Premium thttpd
persistent connections are supported, if a script sets the Content-Length
header
response (happened at customer sites). The response is now written out
using the standard state machine.
the buffer which is handed to thttpd by php is now simply dealt with as if
it were a thttpd generated response (avoids code duplication).
these bugs.
fixes poll(2) issue
fixes hanging cgi issue
fixes off-by-one in scanning input buffers in case of EAGAIN/EWOULDBLOCK
fixes potential bug in managing write buffers
add "index.php" to default files to look for
This is a SAPI module for PHP 4.0 supporting thttpd, the tiny,
turbo, throttling HTTP server by Jef Poskanzer.
The module contains a patch against version 2.10 of thttpd. The patch
adds hooks to thttpd to call PHP, if a filename matches *.php. This
patch will be applied when you install PHP.
While functional, this module exists primarily to demonstrate the
ability of PHP to work in almost every web server environment.