X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=project.lisp;fp=project.lisp;h=1c9a89d474aee1d31c6c0dd4c6f3bb70f5e3dc39;hb=ad10f85ccddf4cdc4fdabe5bc28622975338d552;hp=ad94d48f2aa99087ff062300aa2130098eb1f4cd;hpb=3bffe3c738cf4026f76cd7428c378442e0e4bb2a;p=wol.git diff --git a/project.lisp b/project.lisp index ad94d48..1c9a89d 100644 --- a/project.lisp +++ b/project.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: July 2003 ;;;; -;;;; $Id: project.lisp,v 1.5 2003/07/23 23:08:28 kevin Exp $ +;;;; $Id: project.lisp,v 1.6 2003/08/05 23:00:28 kevin Exp $ ;;;; ;;;; This file and Wol are Copyright (c) 2001-2003 by Kevin M. Rosenberg ;;;; ************************************************************************* @@ -18,7 +18,6 @@ (sessions t) (session-lifetime 18000) (reap-interval 300) server (connector :modlisp)) - (unless server (setq server (ecase connector @@ -112,8 +111,14 @@ (let ((req (make-instance 'http-request :host (header-value command :host) - :raw-uri (puri:intern-uri (header-value command :url)) - :uri (puri:intern-uri (command->uri command)) + :raw-uri (aif (ignore-errors + (puri:intern-uri (header-value command :url))) + it + (header-value command :url)) + :uri (aif (ignore-errors + (puri:intern-uri (command->uri command))) + it + (command->uri command)) :protocol (ensure-keyword (header-value command :server-protocol)) :protocol-string (header-value command :server-protocol) @@ -130,9 +135,7 @@ (defun command->uri (command) (format nil "http://~A:~D~A" (header-value command :host) - (awhen (header-value - command :server-ip-port) - (parse-integer it)) + (header-value command :server-ip-port) (header-value command :url))) (defun is-index-request (req ent) @@ -214,14 +217,18 @@ (format nil "~{~D~^.~}" *wol-version*)) (defun request-query (req &key (uri t) (post t)) - (append - (when (and uri (request-uri-query req)) - (aif (request-query-alist req) - it - (setf (request-query-alist req) - (query-to-alist (request-uri-query req))))) - (when (and post (request-posted-content req)) - (query-to-alist (request-posted-content req))))) + (let ((desired (cons uri post))) + (if (equal desired (request-desired-query req)) + ;; Same desired as cached + (request-query-alist req) + (progn + (setf (request-desired-query req) desired) + (setf (request-query-alist req) + (append + (when (and uri (request-uri-query req)) + (query-to-alist (request-uri-query req))) + (when (and post (request-posted-content req)) + (query-to-alist (request-posted-content req))))))))) (defun request-query-value (key req &key (uri t) (post t)) (cdr (assoc key (request-query req :uri uri :post post) @@ -239,6 +246,7 @@ (defmacro with-wol-page ((req ent &key (format :html) (precompute t) headers) &body body) + (declare (ignore req ent)) (let ((fmt (gensym "FMT-")) (precomp (gensym "PRE-")) (result (gensym "RES-"))