diff --git a/ChangeLog b/ChangeLog index 71c98913..e4cc6ba5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-12-20 Kevin Layer +1.2.48 + + Changes to handle "204 No Content" from Vebjorn Ljosa + . Handling 204 responses is + important because some web services (e.g., Amazon.com's "Simple + Storage Service," S3) use them. + * packages.cl: export *response-no-content* + * client.cl: handle *response-no-content* + * main.cl: define *response-no-content* + 2006-07-24 John Foderaro 1.2.47 * the cookies added by set-cookie-header will now appear in diff --git a/client.cl b/client.cl index b275d82a..1f19dad2 100644 --- a/client.cl +++ b/client.cl @@ -24,7 +24,7 @@ ;; Suite 330, Boston, MA 02111-1307 USA ;; ;; -;; $Id: client.cl,v 1.51 2006/06/08 00:42:43 jkf Exp $ +;; $Id: client.cl,v 1.52 2006/12/20 20:51:21 layer Exp $ ;; Description: ;; http client code. @@ -283,11 +283,13 @@ - (if* (and (null new-location) - ; not called when redirecting - (if* (functionp skip-body) - then (funcall skip-body creq) - else skip-body)) + (if* (or (and (null new-location) + ; not called when redirecting + (if* (functionp skip-body) + then (funcall skip-body creq) + else skip-body)) + (= (client-request-response-code creq) + #.(net.aserve::response-number *response-no-content*))) then (return-from do-http-request (values diff --git a/main.cl b/main.cl index 0f843153..d51a0a2d 100644 --- a/main.cl +++ b/main.cl @@ -24,7 +24,7 @@ ;; Suite 330, Boston, MA 02111-1307 USA ;; ;; -;; $Id: main.cl,v 1.176 2006/07/24 18:54:34 jkf Exp $ +;; $Id: main.cl,v 1.177 2006/12/20 20:51:21 layer Exp $ ;; Description: ;; aserve's main loop @@ -38,7 +38,7 @@ (in-package :net.aserve) -(defparameter *aserve-version* '(1 2 47)) +(defparameter *aserve-version* '(1 2 48)) (eval-when (eval load) (require :sock) @@ -832,6 +832,7 @@ by keyword symbols and not by strings" (defparameter *response-ok* (make-resp 200 "OK")) (defparameter *response-created* (make-resp 201 "Created")) (defparameter *response-accepted* (make-resp 202 "Accepted")) +(defparameter *response-no-content* (make-resp 204 "No Content")) (defparameter *response-partial-content* (make-resp 206 "Partial Content")) (defparameter *response-moved-permanently* (make-resp 301 "Moved Permanently")) @@ -854,6 +855,7 @@ by keyword symbols and not by strings" *response-ok* *response-created* *response-accepted* + *response-no-content* *response-moved-permanently* *response-found* *response-see-other* diff --git a/packages.cl b/packages.cl index 2e234b85..3defb16b 100644 --- a/packages.cl +++ b/packages.cl @@ -38,7 +38,7 @@ v3: version 1.2.47." ;; Suite 330, Boston, MA 02111-1307 USA ;; ;; -;; $Id: packages.cl,v 1.14 2006/08/09 21:13:53 layer Exp $ +;; $Id: packages.cl,v 1.15 2006/12/20 20:51:21 layer Exp $ ;; Description: ;; packages and exports for AllegroServe @@ -167,6 +167,7 @@ v3: version 1.2.47." #:*http-response-timeout* #:*mime-types* #:*response-accepted* + #:*response-no-content* #:*response-bad-request* #:*response-continue* #:*response-created*