Frode,
the patch looks good. Can you please provide a patch with a docstring and a documentation update?
Thanks, Hans
On Wed, Nov 25, 2009 at 11:23, Frode V. Fjeld frode@netfonds.no wrote:
frode@netfonds.no (Frode V. Fjeld) writes:
(I can/could of course specialize process-request for my acceptor class using an unqualified method, and thus set up the dynamic environment just how I want it. However I would then just have to copy the full body of the standard process-request to insert a line or two inside the body of the handler-bind. I believe it's the purpose of a processing protocol to avoid having to do such things.)
This didn't really work out in practice: cut'n'pasting the body of process-request into a different package made it clear that process-request can't really be replaced without breaking lots of stuff. Also, modifying my dispatchers or handlers proved to be impractical. So here's a diff detailing my suggestion in my previous posting. It's simple, and seems to work well.
Index: packages.lisp
--- packages.lisp (revision 4474) +++ packages.lisp (working copy) @@ -168,6 +168,7 @@ "DELETE-AUX-REQUEST-VALUE" "DELETE-SESSION-VALUE" "DISPATCH-EASY-HANDLERS"
- "DISPATCH-REQUEST"
"ESCAPE-FOR-HTML" "EXECUTE-ACCEPTOR" "GET-PARAMETER" Index: request.lisp =================================================================== --- request.lisp (revision 4474) +++ request.lisp (working copy) @@ -210,6 +210,10 @@ ;; we assume it's not our fault... (setf (return-code*) +http-bad-request+)))))
+(defmethod dispatch-request (request)
- (funcall (acceptor-request-dispatcher *acceptor*)
- request))
(defmethod process-request (request) "Standard implementation for processing a request. You should not change or replace this functionality unless you know what you're @@ -227,7 +231,7 @@ ;; skip dispatch if bad request (when (eql (return-code *reply*) +http-ok+) ;; now do the work
- (funcall (acceptor-request-dispatcher *acceptor*) *request*)))))
- (dispatch-request request)))))
(when error (setf (return-code *reply*) +http-internal-server-error+))
-- Frode V. Fjeld Netfonds Bank ASA
tbnl-devel site list tbnl-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/tbnl-devel