Revision: 4364 Author: hans URL: http://bknr.net/trac/changeset/4364
Add WITHIN-REQUEST-P function that can be used to check whether a request is processed within the current dynamic context. Provided by Mark David, ITA U trunk/thirdparty/hunchentoot/doc/index.xml U trunk/thirdparty/hunchentoot/packages.lisp U trunk/thirdparty/hunchentoot/request.lisp U trunk/thirdparty/hunchentoot/specials.lisp
Modified: trunk/thirdparty/hunchentoot/doc/index.xml =================================================================== --- trunk/thirdparty/hunchentoot/doc/index.xml 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/doc/index.xml 2009-04-07 10:56:59 UTC (rev 4364) @@ -2854,6 +2854,15 @@ </clix:function>
<clix:special-variable name="*tmp-directory*"> + <clix:function name='within-request-p'> + clix:lambda-list + </clix:lambda-list> + clix:returnsgeneralized-boolean + </clix:returns> + clix:descriptionReturns true if in the context of a request. Otherwise, <code>NIL</code>. + </clix:description> + </clix:function> + clix:description This should be a pathname denoting a directory where temporary files can be stored. It is used for <a href="#upload">file
Modified: trunk/thirdparty/hunchentoot/packages.lisp =================================================================== --- trunk/thirdparty/hunchentoot/packages.lisp 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/packages.lisp 2009-04-07 10:56:59 UTC (rev 4364) @@ -64,6 +64,7 @@ "*METHODS-FOR-POST-PARAMETERS*" "*REPLY*" "*REQUEST*" + "WITHIN-REQUEST-P" "*REWRITE-FOR-SESSION-URLS*" "*SESSION*" "*SESSION-GC-FREQUENCY*"
Modified: trunk/thirdparty/hunchentoot/request.lisp =================================================================== --- trunk/thirdparty/hunchentoot/request.lisp 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/request.lisp 2009-04-07 10:56:59 UTC (rev 4364) @@ -217,7 +217,8 @@ (let (*tmp-files* *headers-sent*) (unwind-protect (with-mapped-conditions () - (let* ((*request* request)) + (let* ((*request* request) + (*within-request-p* t)) (multiple-value-bind (body error) (catch 'handler-done (handler-bind ((error @@ -255,6 +256,10 @@ (ignore-errors (delete-file path)))))))
+(defun within-request-p () + "True if we're in the context of a request, otherwise nil." + *within-request-p*) + (defun parse-multipart-form-data (request external-format) "Parse the REQUEST body as multipart/form-data, assuming that its content type has already been verified. Returns the form data as
Modified: trunk/thirdparty/hunchentoot/specials.lisp =================================================================== --- trunk/thirdparty/hunchentoot/specials.lisp 2009-04-07 07:22:30 UTC (rev 4363) +++ trunk/thirdparty/hunchentoot/specials.lisp 2009-04-07 10:56:59 UTC (rev 4364) @@ -234,6 +234,11 @@ (defvar-unbound *request* "The current REQUEST object while in the context of a request.")
+(defvar *within-request-p* nil + "True while in the context of a request (while *request* is bound), +otherwise nil. Outside callers should use exported function +within-request-p to test this.") + (defvar-unbound *reply* "The current REPLY object while in the context of a request.")