| 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*) |
|---|