From 22258951c45d89a19bde494acd5510ad48ae1d0e Mon Sep 17 00:00:00 2001 From: Coin Okay Date: Wed, 22 Apr 2020 16:22:03 -0500 Subject: route lookup fix the route key and the req key must be equal in length --- lazybones.lisp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'lazybones.lisp') diff --git a/lazybones.lisp b/lazybones.lisp index 8c0d1b4..4924b84 100644 --- a/lazybones.lisp +++ b/lazybones.lisp @@ -187,18 +187,20 @@ already extant route key. Returns two values, a possible argument list to pass to the route handler and a boolean indicating success" - (let (args) - (loop - :for req-part :in req-key - :for route-part :in route-key - :do (cond - ((path-var-p route-part) - (push req-part args)) - - ((not (route-part-match-p req-part route-part)) - (return-from match-route-key (values nil nil))))) - - (values (reverse args) t))) + (if (not (= (length req-key) (length route-key))) + (values nil nil) + (let (args) + (loop + :for req-part :in req-key + :for route-part :in route-key + :do (cond + ((path-var-p route-part) + (push req-part args)) + + ((not (route-part-match-p req-part route-part)) + (return-from match-route-key (values nil nil))))) + + (values (reverse args) t)))) (defun lookup-route (req) -- cgit v1.2.3