root/trunk/projects/bos/web/startup.lisp

Revision 3879, 2.3 kB (checked in by ksprotte, 2 months ago)

bos hunchentoot single-threaded startup

  • Property svn:eol-style set to native
  • Property svn:keywords set to author date id revision
Line 
1 (in-package :bos.web)
2
3 (defparameter *default-wd*
4   (let ((me #.*compile-file-pathname*))
5     (make-pathname
6      :directory (append (butlast (pathname-directory me)) '("payment-website"))
7      :device (pathname-device me)
8      :host (pathname-host me)
9      :version nil)))
10
11 (defvar *webserver* nil)
12
13 (defvar *port*)
14 (defvar *website-directory*)
15 (defvar *website-url*)
16 (defvar *worldpay-test-mode*)
17
18 (defun init (&key
19              (port 8080)
20              (frontend-port 80)
21              (website-directory *default-wd*)
22              host
23              (website-url (format nil "http://~A" host) website-url-given)
24              worldpay-test-mode
25              (google-analytics-account "UA-3432041-1")
26              start-frontend)
27   (when website-url-given
28     (warn "Specifying :website-url in web.rc is deprecated. Use :host instead.~
29          ~%Website-url will then be initialized by  (format nil \"http://~~A\" host)."))
30   (assert (search host website-url))
31   (setf *port* port)
32   (setf *website-url* website-url)
33   (setf *website-directory* website-directory)
34   (setf *worldpay-test-mode* worldpay-test-mode)
35   (setf *google-analytics-account* google-analytics-account)
36   (format t "~&; Publishing BOS handlers.~%")
37   (unpublish)
38   (bos.web::publish-website :website-directory *website-directory*
39                             :website-url *website-url*
40                             :worldpay-test-mode *worldpay-test-mode*)
41   (format t "~&; Starting hunchentoot.~%")
42   (force-output)
43   (when *webserver*
44     (error "webserver already running"))
45   (setf hunchentoot:*hunchentoot-default-external-format* (flex:make-external-format :utf-8 :eol-style :lf)
46         hunchentoot:*rewrite-for-session-urls* nil
47         ;; the reason for the following setting is that ptviewer sends
48         ;; a different User-Agent -- (when requesting PTDefault.html)
49         hunchentoot:*use-user-agent-for-sessions* nil)
50   (bt:make-thread (lambda ()
51                     (hunchentoot:start-server :port *port* :threaded nil
52                                               :persistent-connections-p nil))
53                   :name "hunchentoot non-threaded wrapper")
54   (setq *webserver* t)
55   (if start-frontend
56       (start-frontend :host host :backend-port port :port frontend-port)
57       (warn "frontend not started - to achieve this specify :start-frontend t"))
58   *webserver*)
Note: See TracBrowser for help on using the browser.