X-Git-Url: http://git.kpe.io/?p=cl-modlisp.git;a=blobdiff_plain;f=utils.lisp;fp=utils.lisp;h=fe10081cf9693eb40eb2e2b91f2dbe622067e655;hp=9964122fd2323b4bca740a717b98955b98103eb5;hb=fa641fe08adb5cede535a6dd79a79047c78ecf8a;hpb=06c0d21709291418242c059d53956f4b164977ea diff --git a/utils.lisp b/utils.lisp index 9964122..fe10081 100644 --- a/utils.lisp +++ b/utils.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Dec 2002 ;;;; -;;;; $Id: utils.lisp,v 1.4 2003/07/08 08:34:23 kevin Exp $ +;;;; $Id: utils.lisp,v 1.5 2003/07/10 18:58:29 kevin Exp $ ;;;; ************************************************************************* (in-package #:modlisp) @@ -31,13 +31,13 @@ (write-header-line "Status" "200 OK") (write-header-line "Content-Type" (format-string ,fmt)) (unless ,precomp - (write-string "end" *apache-socket*) - (write-char #\NewLine *apache-socket*)) + (write-string "end" *modlisp-socket*) + (write-char #\NewLine *modlisp-socket*)) (setq ,outstr (with-output-to-string (,stream) - (let ((*apache-socket* (if ,precomp + (let ((*modlisp-socket* (if ,precomp ,stream - *apache-socket*))) + *modlisp-socket*))) (setq ,result (progn ,@body))))) (cond (,precomp @@ -46,21 +46,21 @@ (write-header-line "Keep-Socket" "1") (write-header-line "Keep-Alive" "timeout=15, max=99") (write-header-line "Connection" "Keep-Alive") - (write-string "end" *apache-socket*) - (write-char #\NewLine *apache-socket*) - (write-string ,outstr *apache-socket*) - (force-output *apache-socket*) - (set-close-apache-socket nil)) + (write-string "end" *modlisp-socket*) + (write-char #\NewLine *modlisp-socket*) + (write-string ,outstr *modlisp-socket*) + (force-output *modlisp-socket*) + (setq *close-modlisp-socket* nil)) (t - (set-close-apache-socket t) - (finish-output *apache-socket*))) + (setq *close-modlisp-socket* t) + (finish-output *modlisp-socket*))) ,result))) (defun redirect-to-location (url) (write-header-line "Status" "302 Redirect") (write-header-line "Location" url) - (write-char #\NewLine *apache-socket*) - (set-close-apache-socket t)) + (write-char #\NewLine *modlisp-socket*) + (setq *close-modlisp-socket* t)) (defun output-ml-page (format html) (write-header-line "Status" "200 OK") @@ -69,10 +69,10 @@ (write-header-line "Keep-Socket" "1") (write-header-line "Keep-Alive" "timeout=15, max=99") (write-header-line "Connection" "Keep-Alive") - (write-string "end" *apache-socket*) - (write-char #\NewLine *apache-socket*) - (write-string html *apache-socket*) - (set-close-apache-socket nil)) + (write-string "end" *modlisp-socket*) + (write-char #\NewLine *modlisp-socket*) + (write-string html *modlisp-socket*) + (setq *close-modlisp-socket* nil)) (defun output-html-page (str) (output-ml-page :html str)) @@ -80,20 +80,19 @@ (defun output-xml-page (str) (output-ml-page :xml str)) +;; Utility functions for library users + (defun posted-to-alist (posted-string) - "Converts a posted string to an assoc list of variable names and values" + "Converts a posted string to an assoc list of keyword names and values, +\"a=1&bc=demo\" => ((:a . \"1\") (:bc . \"demo\"))" (when posted-string (let ((alist '())) (dolist (name=val (kmrcl:delimited-string-to-list posted-string #\&) (nreverse alist)) (let ((name-val-list (kmrcl:delimited-string-to-list name=val #\=))) - (when (= 2 (length name-val-list)) + (if (= 2 (length name-val-list)) (destructuring-bind (name val) name-val-list (push (cons (kmrcl:ensure-keyword name) (kmrcl:decode-uri-query-string val)) - alist)))))))) - - - - - + alist)) + (cmsg-c :debug "Invalid number of #\= in ~S" name-val-list)))))))