Revision: 4205
Author: hans
URL: http://bknr.net/trac/changeset/4205
Specialize method on T to silence "unused variable" warning in CCL.
U trunk/thirdparty/hunchentoot/connection-manager.lisp
Modified: trunk/thirdparty/hunchentoot/connection-manager.lisp
===================================================================
--- trunk/thirdparty/hunchentoot/connection-manager.lisp 2009-02-09 12:13:27 UTC (rev 4204)
+++ trunk/thirdparty/hunchentoot/connection-manager.lisp 2009-02-09 12:14:17 UTC (rev 4205)
@@ -69,7 +69,7 @@
(defgeneric shutdown (connection-manager)
(:documentation "Terminate all threads that are currently associated
with the connection manager, if any.")
- (:method (manager)
+ (:method ((manager t))
#+:lispworks
(when-let (acceptor (server-acceptor (server manager)))
;; kill the main acceptor process, see LW documentation for
Revision: 4201
Author: edi
URL: http://bknr.net/trac/changeset/4201
Small doc tweaks
U trunk/thirdparty/chunga/CHANGELOG.txt
U trunk/thirdparty/chunga/doc/index.html
Modified: trunk/thirdparty/chunga/CHANGELOG.txt
===================================================================
--- trunk/thirdparty/chunga/CHANGELOG.txt 2009-02-09 11:15:17 UTC (rev 4200)
+++ trunk/thirdparty/chunga/CHANGELOG.txt 2009-02-09 11:30:37 UTC (rev 4201)
@@ -1,3 +1,9 @@
+Version 1.0.0
+2009-02-10
+Switched to binary streams underneath and got rid of FLEXI-STREAMS dependency
+Exported (an improved version of) AS-KEYWORD
+Added WITH-CHARACTER-STREAM-SEMANTICS
+
Version 0.4.3
2008-05-23
Cleanup, reduce some consing
Modified: trunk/thirdparty/chunga/doc/index.html
===================================================================
--- trunk/thirdparty/chunga/doc/index.html 2009-02-09 11:15:17 UTC (rev 4200)
+++ trunk/thirdparty/chunga/doc/index.html 2009-02-09 11:30:37 UTC (rev 4201)
@@ -101,7 +101,7 @@
Chunga together with this documentation can be downloaded
from <a href="http://weitz.de/files/chunga.tar.gz">http://weitz.de/files/chunga.tar.gz</a>. The
-current version is 0.5.0. (This version is <b>not</b> compatible with
+current version is 1.0.0. (This version is <b>not</b> compatible with
pre-2009 releases
of <a href="http://weitz.de/hunchentoot/">Hunchentoot</a>
or <a href="http://weitz.de/drakma/">Drakma</a>.) Chunga will only
Revision: 4200
Author: edi
URL: http://bknr.net/trac/changeset/4200
Some more tweaks
U trunk/thirdparty/drakma/CHANGELOG.txt
U trunk/thirdparty/drakma/doc/index.html
U trunk/thirdparty/drakma/request.lisp
Modified: trunk/thirdparty/drakma/CHANGELOG.txt
===================================================================
--- trunk/thirdparty/drakma/CHANGELOG.txt 2009-02-09 11:01:48 UTC (rev 4199)
+++ trunk/thirdparty/drakma/CHANGELOG.txt 2009-02-09 11:15:17 UTC (rev 4200)
@@ -6,6 +6,8 @@
Be more lenient about content length (thanks to Zach Beane and "pix")
Added *ALLOW-DOTLESS-COOKIE-DOMAINS-P* (thanks to Daniel Janus)
Fix generation of user agent header (bug caught by Chaitanya Gupta)
+Added DEADLINE parameter for CCL (thanks to Hans Hübner)
+Fixed bug where READ-BODY returned NIL although TEXTP was true (thanks to Hans Hübner)
Version 0.11.5
2008-03-21
Modified: trunk/thirdparty/drakma/doc/index.html
===================================================================
--- trunk/thirdparty/drakma/doc/index.html 2009-02-09 11:01:48 UTC (rev 4199)
+++ trunk/thirdparty/drakma/doc/index.html 2009-02-09 11:15:17 UTC (rev 4200)
@@ -724,7 +724,7 @@
<!-- Entry for HTTP-REQUEST -->
-<p><br><table border=0><tr><td colspan=4 valign=top>[Function]</td></tr><tr><td valign=top style="white-space:nowrap"><a class=none name='http-request'><b>http-request</b></a> </td><td valign=top><i><a class=none href="#uri">uri</a> </i></td><td valign=top><tt>&key</tt> </td><td><i><a class=none href="#protocol">protocol</a> <a class=none href="#method">method</a> <a class=none href="#force-ssl">force-ssl</a> <a class=none href="#parameters">parameters</a> <a class=none href="#form-data">form-data</a> <a class=none href="#content">content</a> <a class=none href="#content-length">content-length</a> <a class=none href="#content-type">content-type</a> <a class=none href="#cookie-jar-param">cookie-jar</a> <a class=none href="#basic-authorization">basic-authorization</a> <a class=none href="#user-agent">user-agent</a> <a class=none href="#accept">accept</a> <a class=none href="#proxy">proxy</a> <a class=none href="#proxy-basic-authorization">proxy-basic-authorization</a> <a class=none href="#additional-headers">additional-headers</a> <a class=none href="#redirect">redirect</a> <a class=none href="#redirect-methods">redirect-methods</a> <a class=none href="#auto-referer">auto-referer</a> <a class=none href="#keep-alive">keep-alive</a> <a class=none href="#close">close</a> <a class=none href="#external-format-out">external-format-out</a> <a class=none href="#external-format-in">external-format-in</a> <a class=none href="#force-binary">force-binary</a> <a class=none href="#want-stream">want-stream</a> <a class=none href="#stream">stream</a> <a class=none href="#connection-timeout">connection-timeout</a> <a class=none href="#read-timeout">read-timeout</a> <a class=none href="#write-timeout">write-timeout</a></i></td></tr><tr><td colspan=2></td><td colspan=2 valign=top> => <i>body-or-stream, status-code, headers, uri, stream, <a class=none href="#must-close">must-close</a>, reason-phrase</i></td></tr></table>
+<p><br><table border=0><tr><td colspan=4 valign=top>[Function]</td></tr><tr><td valign=top style="white-space:nowrap"><a class=none name='http-request'><b>http-request</b></a> </td><td valign=top><i><a class=none href="#uri">uri</a> </i></td><td valign=top><tt>&key</tt> </td><td><i><a class=none href="#protocol">protocol</a> <a class=none href="#method">method</a> <a class=none href="#force-ssl">force-ssl</a> <a class=none href="#parameters">parameters</a> <a class=none href="#form-data">form-data</a> <a class=none href="#content">content</a> <a class=none href="#content-length">content-length</a> <a class=none href="#content-type">content-type</a> <a class=none href="#cookie-jar-param">cookie-jar</a> <a class=none href="#basic-authorization">basic-authorization</a> <a class=none href="#user-agent">user-agent</a> <a class=none href="#accept">accept</a> <a class=none href="#proxy">proxy</a> <a class=none href="#proxy-basic-authorization">proxy-basic-authorization</a> <a class=none href="#additional-headers">additional-headers</a> <a class=none href="#redirect">redirect</a> <a class=none href="#redirect-methods">redirect-methods</a> <a class=none href="#auto-referer">auto-referer</a> <a class=none href="#keep-alive">keep-alive</a> <a class=none href="#close">close</a> <a class=none href="#external-format-out">external-format-out</a> <a class=none href="#external-format-in">external-format-in</a> <a class=none href="#force-binary">force-binary</a> <a class=none href="#want-stream">want-stream</a> <a class=none href="#stream">stream</a> <a class=none href="#connection-timeout">connection-timeout</a> <a class=none href="#read-timeout">read-timeout</a> <a class=none href="#write-timeout">write-timeout</a> <a class=none href="#deadline">deadline</a></i></td></tr><tr><td colspan=2></td><td colspan=2 valign=top> => <i>body-or-stream, status-code, headers, uri, stream, <a class=none href="#must-close">must-close</a>, reason-phrase</i></td></tr></table>
<blockquote><br>
Sends an <a href="http://www.rfc.net/rfc2616.html">HTTP</a> request to a web server and returns its reply.
@@ -1030,6 +1030,16 @@
arguments are only available for
LispWorks, <code><i>write-timeout</i></code> is only available for
LispWorks 5.0 or higher.
+<p>
+<a class=none name="deadline"><code><i>deadline</i></code></a>, a time
+in the future, specifies the time until which the request should be
+finished. The deadline is specified
+in <a href="http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_i.htm#internal…">internal
+time units</a>. If the server fails to respond until that time, a
+<a href="http://ccl.clozure.com/manual/chapter9.1.html"><code>COMMUNICATION-DEADLINE-EXPIRED</code></a>
+condition is signalled. DEADLINE is only available
+on <a href="http://www.clozure.com/clozurecl.html">CCL 1.2</a>
+and later.
</blockquote>
Modified: trunk/thirdparty/drakma/request.lisp
===================================================================
--- trunk/thirdparty/drakma/request.lisp 2009-02-09 11:01:48 UTC (rev 4199)
+++ trunk/thirdparty/drakma/request.lisp 2009-02-09 11:15:17 UTC (rev 4200)
@@ -381,11 +381,10 @@
LispWorks 5.0 or higher.
DEADLINE, a time in the future, specifies the time until which the
-request should be finished. The DEADLINE is specified in internal
-time units (see (GET-INTERNAL-TIME-UNITS) and
-INTERNAL-TIME-UNITS-PER-SECOND). If the server fails to respond until
-that time, a COMMUNICATION-DEADLINE-EXPIRED condition is signalled.
-DEADLINE is available on CCL 1.2 and later."
+request should be finished. The deadline is specified in internal
+time units. If the server fails to respond until that time, a
+COMMUNICATION-DEADLINE-EXPIRED condition is signalled. DEADLINE is
+only available on CCL 1.2 and later."
(unless (member protocol '(:http/1.0 :http/1.1) :test #'eq)
(parameter-error "Don't know how to handle protocol ~S." protocol))
(setq uri (cond ((uri-p uri) (copy-uri uri))
@@ -459,9 +458,11 @@
:nodelay t))))
#+openmcl
(when deadline
- ;; It is correct to set the deadline here even though it may have been initialized
- ;; by SOCKET-CONNECT already: The stream may have been passed in by the user and
- ;; the user may want to adjust the deadline for every request.
+ ;; it is correct to set the deadline here even though
+ ;; it may have been initialized by SOCKET-CONNECT
+ ;; already - the stream may have been passed in by the
+ ;; user and the user may want to adjust the deadline
+ ;; for every request.
(setf (ccl:stream-deadline http-stream) deadline))
(when (and use-ssl
;; don't attach SSL to existing streams
Revision: 4199
Author: edi
URL: http://bknr.net/trac/changeset/4199
Version bump
U trunk/thirdparty/drakma/CHANGELOG.txt
U trunk/thirdparty/drakma/doc/index.html
Modified: trunk/thirdparty/drakma/CHANGELOG.txt
===================================================================
--- trunk/thirdparty/drakma/CHANGELOG.txt 2009-02-09 10:47:35 UTC (rev 4198)
+++ trunk/thirdparty/drakma/CHANGELOG.txt 2009-02-09 11:01:48 UTC (rev 4199)
@@ -1,8 +1,9 @@
-Version 0.12.0
+Version 1.0.0
2009-02-09
Use the new ("binary") version of Chunga
+Added conditions types
+Some performance improvements
Be more lenient about content length (thanks to Zach Beane and "pix")
-Added conditions types
Added *ALLOW-DOTLESS-COOKIE-DOMAINS-P* (thanks to Daniel Janus)
Fix generation of user agent header (bug caught by Chaitanya Gupta)
Modified: trunk/thirdparty/drakma/doc/index.html
===================================================================
--- trunk/thirdparty/drakma/doc/index.html 2009-02-09 10:47:35 UTC (rev 4198)
+++ trunk/thirdparty/drakma/doc/index.html 2009-02-09 11:01:48 UTC (rev 4199)
@@ -654,13 +654,13 @@
Drakma together with this documentation can be downloaded
from <a href="http://weitz.de/files/drakma.tar.gz">http://weitz.de/files/drakma.tar.gz</a>.
-The current version is 0.12.0. Drakma can be installed
+The current version is 1.0.0. Drakma can be installed
via <a href="http://www.cliki.net/asdf">ASDF</a> and depends on the
open source
libraries <a href="http://www.cliki.net/cl-base64">CL-BASE64</a> (use
3.3.2 or higher to avoid an unneeded dependency
on <a href="http://www.cliki.net/kmrcl">KMRCL</a>), <a href="http://www.cliki.net/Puri">Puri</a>, <a href="http://weitz.de/flexi-streams/">FLEXI-STREAMS</a>,
-and <a href="http://weitz.de/chunga/">Chunga</a> (0.5.0 or higher).
+and <a href="http://weitz.de/chunga/">Chunga</a> (1.0.0 or higher).
If you're <em>not</em> using LispWorks, you'll also
need <a href="http://www.cliki.net/usocket">usocket</a> (0.3.2 or
newer) and (except
Revision: 4197
Author: hans
URL: http://bknr.net/trac/changeset/4197
improve comment (from ITA r234477)
U trunk/thirdparty/hunchentoot/connection-manager.lisp
Modified: trunk/thirdparty/hunchentoot/connection-manager.lisp
===================================================================
--- trunk/thirdparty/hunchentoot/connection-manager.lisp 2009-02-09 10:14:59 UTC (rev 4196)
+++ trunk/thirdparty/hunchentoot/connection-manager.lisp 2009-02-09 10:46:38 UTC (rev 4197)
@@ -62,9 +62,9 @@
instance. The SOCKET argument is passed to START-REQUEST-PROCESSING
as argument.
-In a multi-threaded environment, the connection manager runs the thunk
-in a separate thread. In a single-threaded environment, the thunk
-will be called directly."))
+In a multi-threaded environment, the connection manager runs this function
+in a separate thread. In a single-threaded environment, this function
+is called directly."))
(defgeneric shutdown (connection-manager)
(:documentation "Terminate all threads that are currently associated
Revision: 4196
Author: edi
URL: http://bknr.net/trac/changeset/4196
Be liberal about content length
U trunk/thirdparty/drakma/CHANGELOG.txt
U trunk/thirdparty/drakma/doc/index.html
U trunk/thirdparty/drakma/request.lisp
Modified: trunk/thirdparty/drakma/CHANGELOG.txt
===================================================================
--- trunk/thirdparty/drakma/CHANGELOG.txt 2009-02-09 10:08:05 UTC (rev 4195)
+++ trunk/thirdparty/drakma/CHANGELOG.txt 2009-02-09 10:14:59 UTC (rev 4196)
@@ -1,6 +1,7 @@
Version 0.12.0
2009-02-09
Use the new ("binary") version of Chunga
+Be more lenient about content length (thanks to Zach Beane and "pix")
Added conditions types
Added *ALLOW-DOTLESS-COOKIE-DOMAINS-P* (thanks to Daniel Janus)
Fix generation of user agent header (bug caught by Chaitanya Gupta)
Modified: trunk/thirdparty/drakma/doc/index.html
===================================================================
--- trunk/thirdparty/drakma/doc/index.html 2009-02-09 10:08:05 UTC (rev 4195)
+++ trunk/thirdparty/drakma/doc/index.html 2009-02-09 10:14:59 UTC (rev 4196)
@@ -881,13 +881,12 @@
content body. Note that this will not work with some older web
servers.
<p>
-<a class=none name="content-length2">A non-<code>NIL</code> <code><i>content-length</i></code> argument</a>
-means that Drakma <em>must</em> build the request body in RAM and
-compute the content length even if it would have otherwise used
-chunked encoding - for example in the case of file uploads. A special
-case is the value <code>T</code>
-for <code><i>content-length</i></code> which means that Drakma should
-compute the content length after building the request body.
+<a class=none name="content-length2">Providing
+a</a> <a href="http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_t.htm#true">true</a>
+CONTENT-LENGTH argument which is not a non-negative integer means that
+Drakma <em>must</em> build the request body in RAM and compute the
+content length even if it would have otherwise used chunked encoding,
+for example in the case of file uploads.
<p>
<a class=none name="content-type"><code><i>content-type</i></code></a> is the
corresponding 'Content-Type' header to be sent and will be ignored
Modified: trunk/thirdparty/drakma/request.lisp
===================================================================
--- trunk/thirdparty/drakma/request.lisp 2009-02-09 10:08:05 UTC (rev 4195)
+++ trunk/thirdparty/drakma/request.lisp 2009-02-09 10:14:59 UTC (rev 4196)
@@ -285,12 +285,10 @@
send the content body. Note that this will not work with older web
servers.
-A non-NIL CONTENT-LENGTH argument means that Drakma /must/ build the
-request body in RAM and compute the content length even if it would
-have otherwise used chunked encoding, for example in the case of file
-uploads. A special case is the value T for CONTENT-LENGTH which means
-that Drakma should compute the content length after building the
-request body.
+Providing a true CONTENT-LENGTH argument which is not a non-negative
+integer means that Drakma /must/ build the request body in RAM and
+compute the content length even if it would have otherwise used
+chunked encoding, for example in the case of file uploads.
CONTENT-TYPE is the corresponding `Content-Type' header to be sent and
will be ignored unless CONTENT is provided as well.
@@ -398,8 +396,6 @@
(parameter-error "Don't know how to handle scheme ~S." (uri-scheme uri)))
(when (and close keep-alive)
(parameter-error "CLOSE and KEEP-ALIVE must not be both true."))
- (when (and (eq content :continuation) content-length)
- (parameter-error "CONTENT-LENGTH must be NIL if CONTENT is :CONTINUATION."))
(when (and form-data (not (eq method :post)))
(parameter-error "FORM-DATA makes only sense with POST requests."))
;; convert PROXY argument to canonical form
@@ -550,7 +546,9 @@
(when content-type
(write-header "Content-Type" "~A" content-type))
(when (and content-length
- (not (or (arrayp content)
+ (not (or (and (integerp content-length)
+ (not (minusp content-length)))
+ (arrayp content)
(listp content)
(eq content :continuation))))
;; CONTENT-LENGTH forces us to compute request body