[bknr-cvs] edi changed trunk/thirdparty/cl-webdav/
BKNR Commits
bknr at bknr.net
Mon Nov 16 07:14:00 UTC 2009
Revision: 4471
Author: edi
URL: http://bknr.net/trac/changeset/4471
Use abort-request-handler
U trunk/thirdparty/cl-webdav/doc/index.html
U trunk/thirdparty/cl-webdav/handlers.lisp
U trunk/thirdparty/cl-webdav/util.lisp
Modified: trunk/thirdparty/cl-webdav/doc/index.html
===================================================================
--- trunk/thirdparty/cl-webdav/doc/index.html 2009-11-16 07:04:07 UTC (rev 4470)
+++ trunk/thirdparty/cl-webdav/doc/index.html 2009-11-16 07:14:00 UTC (rev 4471)
@@ -724,10 +724,9 @@
allowed. If <code><i>root-name</i></code> is given, it should be the
local name (a string) of a DAV node. In this case, the XML is
validated. This function is expected to be called from within a
-Hunchentoot request and throws to
-the <a
-href="http://weitz.de/hunchentoot/#handler-done"><code>HANDLER-DONE</code></a>
-tag with a return code of
+Hunchentoot request and
+calls <a href="http://weitz.de/hunchentoot/#abort-request-handler"><code>ABORT-REQUEST-HANDLER</code></a>
+with a return code of
<a href="http://weitz.de/hunchentoot/#+http-bad-request+"><code>+HTTP-BAD-REQUEST+</code></a> if a parsing error occurs or if the XML is
invalid.
<p>
Modified: trunk/thirdparty/cl-webdav/handlers.lisp
===================================================================
--- trunk/thirdparty/cl-webdav/handlers.lisp 2009-11-16 07:04:07 UTC (rev 4470)
+++ trunk/thirdparty/cl-webdav/handlers.lisp 2009-11-16 07:14:00 UTC (rev 4471)
@@ -174,12 +174,10 @@
(setf (header-out :etag) etag))
(when content-language
(setf (header-out :content-language) content-language))
- (catch 'handler-done
- (handle-if-modified-since write-date)
- (when (equal etag (header-in* :if-none-match))
- (setf (return-code) +http-not-modified+)))
- (when (eql (return-code) +http-not-modified+)
- (throw 'handler-done nil))
+ (handle-if-modified-since write-date)
+ (when (equal etag (header-in* :if-none-match))
+ (setf (return-code) +http-not-modified+)
+ (abort-request-handler))
(setf (header-out :last-modified) (rfc-1123-date write-date)
(content-length) (resource-length resource))
(unless head-request-p
@@ -199,7 +197,7 @@
instead."
(unless results
(setf (return-code) default-return-code)
- (throw 'handler-done nil))
+ (abort-request-handler))
(setf (content-type) "text/xml; charset=utf-8"
(return-code) +http-multi-status+)
;; use a hash table to group by status code
Modified: trunk/thirdparty/cl-webdav/util.lisp
===================================================================
--- trunk/thirdparty/cl-webdav/util.lisp 2009-11-16 07:04:07 UTC (rev 4470)
+++ trunk/thirdparty/cl-webdav/util.lisp 2009-11-16 07:14:00 UTC (rev 4471)
@@ -30,14 +30,14 @@
(in-package :cl-webdav)
(defmacro define-return-code-shortcut (name return-code)
- "Defines a function called NAME which just sets the HTTP return
-code to RETURN-CODE and then ends the current handler by throwing
-NIL to the catch tag HANDLER-DONE."
+ "Defines a function called NAME which just sets the HTTP return code
+to RETURN-CODE and then ends the current handler by calling
+ABORT-REQUEST-HANDLER."
`(defun ,name ()
- ,(format nil "Sets RETURN-CODE to ~A and then throws NIL to
-the HANDLER-DONE catch tag." return-code)
+ ,(format nil "Sets RETURN-CODE to ~A and then calls ABORT-REQUEST-HANDLER."
+ return-code)
(setf (return-code) ,return-code)
- (throw 'handler-done nil)))
+ (abort-request-handler)))
(define-return-code-shortcut not-implemented +http-not-implemented+)
(define-return-code-shortcut bad-request +http-bad-request+)
More information about the Bknr-cvs
mailing list