fnord is a small and fast webserver written by Fefe.
As of October 2010 the latest fnord release was version 1.10.
The last changes in CVS were made 2007-11-04.
These are the patches to the source code from CVS against 1.10:
Add some mimetypes:
My patch for redirect on requesting a directory without trailing "/" in URL:
Peter Conrad's patch for logging gz:
My patch for disabling .png delivers if GIFs are requested and an equal named PNG does exist:
This patch is sometimes necessary to avoid a broken "webdesign".
This patch is derived from the AUR of archlinux and I'm not sure who's the author:
With this patch and misc-binfmt support on Linux you can call PHP-scripts by using CGI.
If you don't have misc-binfmt support you can apply this patch with interpreters hardcoded in source:
A special fnord version with all patches mentioned above:
Don't be surprised if this fnord claims to be version 1.11. In the current CVS checkout this version is mentioned in file CHANGES and this version string is used by Makefile.
This patch adds support for 'index.php': fnord-1.11-indexphp.patch
The fnord-1.11-slowloris-fun.patch reduces a timeout and logs slowloris and other 410 requests.
If you want to send "Expires" tags then you might be interested in the fnord-1.11-expires.patch which enables expires-timestamps dependent on file types.
A bug which inhibits logging of HTTP user agents can be fixed with the fnord-1.11-log-useragent-bugfix.patch.
fnord-1.11-svg-and-nopragma.patch adds the MIME type for svg and removes the obsolete and misinterpreted "Pragma" tag from the header (when did you met a pure HTTP 1.0 proxy last time?).
Sometimes CGI-scripts only return partial data through fnord. Web pages are broken and html source may be terminated in the middle of a line. This bug is fixed by fnord-1.11-pollhup.patch which alters one POLLHUP-check. POLLHUP may be set together with POLLIN. But if output-data from CGI-script is read (default 8 KB) there may be more data left to read. Therefore do another read() if buffer was full on POLLIN&POLLHUP to get any data left. The Debian patch for this bug wastes time with unnecessary syscalls poll() and read() in this case. This patch also increases the size of the stdout buffer to 64 KB.
When a client sends a If-Modified-Since request-header field then it is converted as localtime. The fnord-1.11-if-modified-since.patch adds the timezone offset after mktime() conversion. DST recognition is "fixed" by a comparing the file mod time to the split second with an one hour offset.
Some Webbrowsers ignore Content-type if it is not the last tag in the http header. In RFC 2616 3.4.1 no statement about this (mis-) behaviour can be found. The patch fnord-content-type-last-tag.patch makes fnord to sent it as last tag.
A bug causing "Requested Range Not Satisfiable" (416) replies can be fixed with fnord-byte-ranges-rfc2616.patch. With this patch fnord does not send 416 if rangeend is greater than the size of the data to send. It also corrects the handling of invalid range syntax. fnord should now act like described in RFC 2616 14.35.1.
It seems that fnord is no longer maintained and a growing set of patches is unreliable manageable without a version management. This lead to a new repository. And because there can be only one fnord repo I called it "kerkelinn" - a fork of fnord. "kerkelinn" consists of all patches described above, some more patches and two new features in version 1.13.
Copyright © 2004-2017 Frank W. Bergmann
Alle Rechte vorbehalten.