From dbf4a5c064bdf32b8e93fbfe24c55647bbf820b9 Mon Sep 17 00:00:00 2001 From: Bibek Panthi Date: Mon, 21 Jun 2021 15:52:15 +0545 Subject: [PATCH] discard multiple values returned by handle-request In default method for `handler-request' ``` (throw 'handler-done (values nil cond (get-backtrace))) ``` is used, which is caught in `process-request' and the second return value is used as error flag. However if handler-request returns multiple values normally from user code, this also registers as error. For example, a define-easy-handler such as ``` (define-easy-handler (...) () ... (gethash key table)) ``` seems OK as user code. But the `gethash' returns T as second value which undesirably leads to error. --- request.lisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/request.lisp b/request.lisp index 31e38bf..5ae55b5 100644 --- a/request.lisp +++ b/request.lisp @@ -238,7 +238,7 @@ slot values are computed in this :AFTER method." ;; skip dispatch if bad request (when (eql (return-code *reply*) +http-ok+) (catch 'handler-done - (handle-request *acceptor* *request*))) + (values (handle-request *acceptor* *request*)))) (when error ;; error occurred in request handler (report-error-to-client error backtrace))