File: server.lisp

package info (click to toggle)
araneida 0.90.1-dfsg-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 700 kB
  • ctags: 643
  • sloc: lisp: 4,878; perl: 166; sh: 109; makefile: 34
file content (50 lines) | stat: -rw-r--r-- 1,917 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
(in-package :araneida)

;;; this file is no longer loaded

(defun output-apache-conf-segment (server &optional (stream t))
  "Output on STREAM an httpd.conf VirtualHost section that describes SERVER"
  (let* ((u (server-base-url server))
         (real-u (make-instance 'http-url :host (url-host u)
                                :port (server-port server))))
    (format stream 
            "<VirtualHost ~A:~A>
ServerName ~A
ProxyPass / ~A
ProxyPassReverse / ~A~%"
            (url-host u) (url-port u) (url-host u)
            (urlstring real-u) (urlstring real-u))
    (when (server-ssl-enabled-p server)
      (format stream "SSLEngine on~%SSLCertificateFile ~A~%NoCache *~%" 
              (namestring (server-ssl-certificate server)))
      (aif (server-ssl-private-key server)
           (format stream "SSLCertificateKeyFile ~A~%"
                   (namestring it))))
    (format stream "SetEnvIf User-Agent \".*MSIE.*\" nokeepalive ssl-unclean-shutdown~%</VirtualHost>~%")))

#|
(output-apache-conf-segment
 (make-instance 'server
                :base-url (parse-urlstring "https://www.stargreen.com/")
                :port "8000"
                :ssl-enabled-p nil))
|#

(defmethod server-equal-p ((server1 t) (server2 t)) nil)
(defmethod server-equal-p ((server1 server) (server2 server))
  (and (eql (class-of server1) (class-of server2))
       (let ((class (class-of server1)))
         (loop for slot in '(base-url port name ssl-enabled-p ssl-certificate
				      ssl-private-key)
               for name = slot
               always
               (equal (slot-value server1 name) (slot-value server2 name))))))



(defmethod print-object ((s server) stream)
  (print-unreadable-object (s stream :type t :identity t)
                           (format stream "~A port ~A"
                                   (urlstring (server-base-url s))
                                   (server-port s) )))