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_time_unit">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