3 fix warning about missing NAME keyword arg at start-thread (Mark H. David)
4 remove tbnl-announce list (Hans Huebner)
5 correct speling eror (Hans Huebner)
6 Update request.lisp (muyinliu)
7 file upload file name encoding error fixed (muyinliu)
8 support use of logical file names for document-root and error-template-directory (Hans Huebner)
9 Generate www/hunchentoot-doc.html. (Stas Boukarev)
10 Remove mentions of asdf-install and the darcs mirror from docs. (Stas Boukarev)
14 Optimize get-peer/local-address-and-port. (Stas Boukarev)
15 Close SSL streams after processing connection. (Stas Boukarev)
19 allow for handler setting of the "connection" header (William Halliburton)
23 Use version number from ASDF system definition, not special var (Hans Huebner)
27 Don't set the Connection header to Close if it's already set (AndrejSuc/Stas Boukarev)
31 Print header value (if number) in base 10 (Chaitanya Gupta)
32 Fix for CLISP compilation (Anton Vodonosov)
36 Fix capitalization inconsistencies in docs (reported by Stas Boukarev)
40 Don't rely on asdf to find default document directory
41 Add m4v mime type (Wes Henderson)
45 Fix ACCEPTOR-REMOVE-SESSION default implementation (Stas Boukarev, Mathieu Lemoine)
49 Prevent errors when basic auth user or password contains colon
50 Add missing implementation for client-as-string for Lispworks, contributed by Raymond Wiker
54 New START-THREAD API function (Faré Rideau)
58 Fix bug that caused error when requesting nonexistent page.
62 Fix race condition in acceptor shutdown (Faré Rideau)
66 Call ACCEPTOR-STATUS-MESSAGE in a saner and more useful fashion (sponsored by Ron Garret)
70 fix wrong documented signature in acceptor-status-message (reported by Zach Beane)
74 Various documentation updates
75 Fix bug in static file handling that caused Safari to hang on 304 responses by Hunchentoot (reported by Wim Oudshoorn)
79 Fix bug in MD5-HEX that could cause session keys to be reused
83 Add local-addr* and local-port* functions
87 Fix test script to accomodate for Drakma fix regarding redirect from POST to GET
88 Fix range handling once again
92 ECL fixes (Juan Jose Giarcia-Ripoll)
96 Fix documentation for COOKIE-IN, which returns a string, not a cookie.
97 Hunchentoot could not deal with / pointing to a static file directory (Stas Boukarev).
98 Fixes to pathname sanitizing when handling static files.
99 Further Range: header handling fixes
100 Fix some export names relating to taskmaster thread count (Faré Rideau)
104 Doc fixes, add .pre-release.sh script
108 High-load multithread stability fixes (Mathieu Lemoine)
112 Remove dead code & style fixes (Ala'a Mohammad)
113 Bug fix: setting *print-base* / *print-radix* caused invalid cookie values (Scott L. Burson)
114 Various documentation and style updates
115 Fix documentation bug found (Mathieu Lemoine)
116 Fix bug that could hang Hunchentoot under load (Mathieu Lemoine)
120 Fix crash when error occurs while logging error (reported by Xu Jingtao)
121 Fix compilation with :hunchentoot-no-ssl feature (Mark Evenson)
122 Fix Range header handling (Simon Sandlund)
123 Export acceptor-remove-session
124 ECL timeout support (Juan Jose Giarcia-Ripoll)
125 Changed cookie handling - Hunchentoot no longer encodes cookies
126 automatically. Applications must make sure that they only set cookies
127 to permitted values (refer to RFC6265 for the details, thanks to Ralf
128 Stoye for debugging help)
132 Fix warning on LispWorks (Nico de Jager)
133 Documentation updates
134 Remove obsolete symbols from export list
135 Add easy-ssl-acceptor
136 Document acceptor-remove-session, remove obsolete *session-removal-hook* export (Issue #15)
137 Added :description to asdf system definition
138 Add documentation section describing how to bind to privileged ports
142 Use FINISH-OUTPUT instead of FORCE-OUTPUT at connection end (I. Perminov)
143 Documentation updates
144 External format EOL style fixes for Windows (Anton Kovalenko)
148 Fix to allow send-service-unavailable-reply to work (Faré Rideau)
149 Make sure we always have a cooked message to send in case of error (Faré Rideau)
150 Add www/ directory with default file tree that is being served
151 Add error template mechanism and improve error reporting in general.
152 Improve automatic testing, SBCL kludge to support asdf:test-op
153 Allegro CL modern mode fixes
154 Fix bugs in serving partial responses
155 Limit maximum number of threads that Hunchentoot creates (Dan Weinreb, Scott McKay)
156 Export fixes (Gordon Sims, Andrey Moskvitin, Faré Rideau)
157 Factor out easy-handler logic into separate acceptor subclass
158 Export two session functions (Nico de Jager)
159 Allow no Content-Type header (Chaitanya Gupta)
160 Patch for compilation with ECL (Sohail Somani)
161 Fix DEFINE-EASY-HANDLER for multiple acceptors (Nicolas Neuss)
162 Revived *SHOW-LISP-BACKTRACES-P*
163 Made sure "100 Continue" is returned even if the client sends "Expect: 100-continue" twice (reported by Gordon Sims)
164 Fixed typo in code which interprets transfer encodings
168 Exported WITHIN-REQUEST-P (Faré Rideau)
169 Safeguard measures against XSS attacks (J.P. Larocque)
170 Prevent potential leak when closing stream (Matt Lamari, Martin Simmons)
171 Change some occurrences of HANDLER-CASE* to HANDLER-CASE (Hans Hübner, Allan Dee)
175 Architectural changes - see HANDLE-REQUEST (thanks to Andreas Fuchs and Frode Fjeld)
176 Re-introduced *CATCH-ERRORS-P* and MAYBE-INVOKE-DEBUGGER
177 Integration with trivial-backtrace (see *LOG-LISP-BACKTRACES-P*)
178 Treat :UNSPECIFIC like NIL in pathname components (reported by Frode Fjeld)
180 Prepared for LispWorks 6 (Nico de Jager)
181 Fixed reading of post parameters (Peter Seibel and Stephen P. Compall)
182 Fixed STOP by supplying the :READY-ONLY keyword to USOCKET:WAIT-FOR-INPUT
183 Enabled SSL key passwords for Lisps other than LW (Vsevolod)
187 Complete architectural redesign (together with Hans Hübner)
188 Lots of small fixes and improvements, too many to enumerate here
192 Fixed embarrassingly mis-placed parentheses (thanks to Hans Hübner)
196 Removed FORCE-OUTPUT* and thus the ACL-COMPAT dependency (thanks to Hans Hübner)
197 Support for MP-less CMUCL (thanks to Hans Hübner)
201 Fixed unportable LOOP usage (caught by "C S S")
205 Added CODE parameter to REDIRECT (thanks to Michael Weber)
209 Fixed typo in test.lisp (thanks to Ben Hyde)
210 Changed wrong usage of EQ to EQL (thanks to Ariel Badichi)
211 Fixed typo in default handler (thanks to Eugene Ossintsev)
215 Uses CL-FAD for HANDLE-STATIC-FILE now
216 Better error reporting for CREATE-FOLDER-DISPATCHER-AND-HANDLER (suggested by Cyrus Harmon)
217 Faster version of WRITE-HEADER-LINE (thanks to V. Segu�)
221 Added support for CLISP (thanks to Anton Vodonosov)
225 Replace ENOUGH-NAMESTRING with ENOUGH-URL (patch by Kilian Sprotte and Hans Hübner)
229 Fix compilation order (thanks to Tiarnan O'Corrain and Chris Dean)
233 Robustified MAKE-SOCKET-STREAM against potential leak (thanks to Alain Picard)
234 Replaced #-FOO #-FOO constructs for OpenMCL (patch by Michael Weber)
235 Updated tutorial links
239 Made log stream shared on OpenMCL (thanks to Gary Byers)
243 Enabled GET-GID-FROM-NAME for newer versions of SBCL (patch by Cyrus Harmon)
247 Better handling of PORT parameter in REDIRECT (thanks to Vladimir Sedach)
251 Fixed bug where you couldn't set "Server" header (caught by Ralf Mattes)
252 Documentation clarification for HEADER-OUT function
256 Added support for "HttpOnly" cookie attribute
260 Added *METHODS-FOR-POST-PARAMETERS* (suggested by Jonathon McKitrick)
264 Better support for WITH-TIMEOUT on SBCL/Win32 (thanks to Anton Vodonosov)
268 Now uses bound for flexi stream returned by RAW-POST-DATA
269 Needs FLEXI-STREAMS 0.12.0 or higher
274 Added declaration in server.lisp to appease SBCL
278 Fixes for OpenMCL (thanks to Lennart Staflin and Tiarnan O'Corrain)
282 Added server names and coupled them with easy handlers (suggested by Mac Chan)
283 Exported SESSION-COOKIE-VALUE instead of SESSION-STRING (suggested by Slava Akhmechet)
284 Documentation fixes (thanks to Victor Kryukov and Igor Plekhov)
288 Made MAYBE-INVOKE-DEBUGGER a generic function and exported it (suggested by Vladimir Sedach)
292 Fixed CREATE-FOLDER-DISPATCHER-AND-HANDLER in the presence of URL-encoded URLs (bug caught by Nicolas Lamirault)
296 Made DEF-HTTP-RETURN-CODE more flexible (suggested by Jong-won Choi)
300 Added PORT parameter to REDIRECT (suggested by Cyrus Harmon)
301 Exported REMOVE-SESSION (suggested by Vamsee Kanakala)
305 Added socket timeouts for AllegroCL
306 Catch IO timeout conditions for AllegroCL, SBCL and CMUCL (suggested by Red Daly and others)
307 Added per-server dispatch tables (suggested by Robert Synnott and Andrei Stebakov)
311 USE the CL package explicitly when defining HUNCHENTOOT-MP (bug report by Joel Boehland)
315 Correct behaviour for "100 Continue" responses
323 Don't use chunked encoding for empty (NIL) bodies
327 Really exported REASON-PHRASE this time (and also *CURRENT-PROCESS*)
331 Added HUNCHENTOOT-MP package (suggested by Cyrus Harmon)
332 Only invoke MARK-AND-SWEEP for 32-bit versions of LW (thanks to Chris Dean)
333 Exported REASON-PHRASE
337 Added *APPROVED-RETURN-CODES*, *HEADER-STREAM*, and +HTTP-FAILED-DEPENDENCY+
338 Exported MIME-TYPE and SSL-P
343 Added +HTTP-MULTI-STATUS+
347 Fix test suite to properly handle non-base characters in LW (bug caught by Jong-won Choi)
351 Fixed last change (thanks to Marko Kocic)
355 Development port (no threads) to SBCL/Win32 (patch by Marko Kocic)
356 Support for compilation without SSL
360 Don't use NSTRING-UPCASE for outgoing headers (bug caught by Saurabh Nanda)
361 Changed ProxyPass example in docs from /lisp to /hunchentoot
365 Reset to "faithful" external format on each iteration (bug caught by Viljo Marrandi and Ury Marshak)
369 Accept chunked transfer encoding for mod_lisp request bodies (thanks to Hugh Winkler's mod_lisp additions)
370 Robustify against erroneous form-data submissions (caught by Ury Marshak)
374 Even more flexible behaviour of RAW-POST-DATA
378 More flexible behaviour of RAW-POST-DATA
379 Robustified PARSE-CONTENT-TYPE
383 More meaningful results for RAW-POST-DATA
387 Added favicon.ico to example website (thanks to Yoni Rabkin Katzenell, Toby, and Uwe von Loh)
391 Added Hunchentoot logo by Uwe von Loh
395 Exported symbols related to session GC (suggested by Nico de Jager)
399 Added *HANDLE-HTTP-ERRORS-P* (thanks to Marijn Haverbeke)
400 Remove duplicate headers when reading from mod_lisp
404 Fixed HEADER-OUT (thanks to Robert J. Macomber)
408 Fixed bug in START-OUTPUT which confused mod_lisp
412 Changed behaviour of REAL-REMOTE-ADDR (as suggested by Robert J. Macomber)
413 Fixed COOKIE-OUT (thanks to Robert J. Macomber)
417 Don't bind *DISPATCH-TABLE* too early (thanks to Marijn Haverbeke)
421 Fixed bug in AUTHORIZATION function (reported by Michael J. Forster)
425 Correct SSL check in REDIRECT function
426 LOG-MESSAGE now checks for (BOUNDP '*SERVER*)
430 OpenMCL fixes (by Ralf Stoye)
434 No timeouts for mod_lisp servers (as in Hunchentoot 0.3.x)
438 Fixed a typo in easy-handlers.lisp (caught by Travis Cross)
442 Ported to CMUCL, SBCL, OpenMCL, and AllegroCL
444 Tons of small changes, too many to list them individually
448 Uses TBNL's WITH-DEBUGGER now
452 Added *CATCH-ERRORS-P* (from TBNL)
456 Accept HTTP requests with chunked transfer encoding
457 Use Chunga for chunking
461 Skip START-OUTPUT advice completely if working for TBNL
465 Added write timeouts for LW 5.0
466 Updated LW links in documentation
470 Serves as infrastructure for TBNL now (to replace KMRCL)
471 For HTTP/1.1 only send 'Keep-Alive' headers if explicitly requested
475 Connection headers are separated by commas, not semicolons
479 Refactored streams.lisp to appease LW compiler (thanks to Martin Simmons)
480 Changed handling of version string
481 Changed package handling in system definition (thanks to Christophe Rhodes)
485 Removed KMRCL workaround
489 Mention TBNL version number in server name header
493 Fixed package stuff and HYPERDOC support
497 Initial public release
499 [For earlier changes see the file "CHANGELOG_TBNL" that is included with the release.]