r7061: initial property settings
[wol.git] / project.lisp
index 119c929e00b93096c9462e584bc9c841b29dee7f..ed1ef4892c8a0beb42db44cbe477bbc1f3c28290 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  July 2003
 ;;;;
-;;;; $Id: project.lisp,v 1.11 2003/08/10 05:16:52 kevin Exp $
+;;;; $Id$
 ;;;;
 ;;;; This file and Wol are Copyright (c) 2001-2003 by Kevin M. Rosenberg
 ;;;; *************************************************************************
 (in-package #:wol)
 
 (defun wol-project (name &key (project-prefix "/") map index
-                   (sessions t) (session-lifetime 18000)
-                   (reap-interval 300) server
-                   (connector :modlisp))
+                             (sessions t) (session-lifetime 18000)
+                             (reap-interval 300) server
+                             (connector :modlisp)
+                             timeout)
   (unless server
     (setq server 
          (ecase connector
@@ -53,7 +54,8 @@
       (:aserve
        (net.aserve:publish-prefix :prefix project-prefix
                                  :server server
-                                 :function 'wol-aserve-processor)))
+                                 :function 'wol-aserve-processor
+                                 :timeout timeout)))
   
   (if sessions
        (when (null (sessions (session-master project)))
@@ -66,9 +68,6 @@
     (when (and sessions (null *reaper-process*))
       (setq *reaper-process* (start-reaper)))))
 
-(defun stop-wol-project (name)
-  (remhash name *active-projects*))
-
 (defun wol-ml-processor (command)
   "Processes an incoming modlisp command"
   (let* ((req (command->request command
        (redirect-to-location url)))))
 
 (defun dispatch-request (req ent)
+  (setq *req* req)
+  (setq *ent* ent)
   (let ((proj (entity-project ent)))
     (if (is-index-request req ent)
        (redirect-entity (project-index proj) req ent)
 (defun find-project-for-request (req)
   (maphash (lambda (name project)
             (declare (ignore name))
-            (setq cl-user::p project)
-            (setq cl-user::r req)
             (when (and (eq (project-server project)
                            (or (request-aserve-server req)
                                (request-ml-server req)))
 
 (defmacro with-wol-page ((req ent
                          &key (format :html) (precompute t) headers
-                              (response-code 200))
+                              (response-code 200)
+                              timeout)
                         &body body)
   `(if (request-aserve-server ,req)
       (net.aserve:with-http-response 
          ((aserve-request ,req) 
           (entity-aserve-entity ,ent)
           :content-type (ml::format-string ,format)
+          :timeout ,timeout
           :response
           (case ,response-code
             (302 net.aserve::*response-moved-permanently*)