* Grumpy's changelog * What's new in v0.17 [02 Apr 2009]: - Grumpy is able to ban HTTP requests by their User-Agent, - The source code has been optimized to allow a Windows port version, - UTF-8 BOM headers (if any) are handled correctly in all configuration files, - Fixed a serious bug in the URL %-decoder (could cause Grumpy to loop indefinetely in specific conditions), - The security module is checking any %-encoded requests a bit deeper, - Directory listings are buffered now (thus are transmitted faster), and contain a content-length declaration, - Any http request containging an asterisk in the filename (like "/boo*") is answered with a 404 Not Found, - Http requests containing two or more "?" chars are rejected by the security module, - Gopher requests containing at least one "?" or "*" chars are rejected by the gopher's security module, - If a specific port was used to access Grumpy, the http directory listing will display it (extracted from the "Host" header), - All returned http error pages have a content-length declaration in their header now, - Columns "Date / Time" and "Size" of any HTTP directory listing are not wrapable anymore (spaces won't be breaked), - HTTP directory listings aren't using deprecated html statements anymore (the produced html code is entirely style-based now), - The parser for descript.ion files has been optimized (much faster now), - Added a brute-force protection for HTTP auth attempts (responses to false credentials are delayed for 2 seconds each time), - Range specifications of HTTP requests using units different than "bytes" are ignored, - Connections durations are written to the log file.