Skip to content

Commit 438e2e9

Browse files
committed
Add :woo-no-ssl to disable SSL feature and omit a dependency on CL+SSL.
1 parent d49dbb7 commit 438e2e9

File tree

4 files changed

+38
-22
lines changed

4 files changed

+38
-22
lines changed

src/ev/socket.lisp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,11 +185,15 @@
185185
(cffi:with-pointer-to-vector-data (data-sap data)
186186
(let* ((len (length data))
187187
(completedp nil)
188-
(n (if (socket-ssl-handle socket)
189-
(cl+ssl::ssl-write (socket-ssl-handle socket)
190-
data-sap
191-
len)
192-
(wsys:write fd data-sap len))))
188+
(n
189+
#+woo-no-ssl
190+
(wsys:write fd data-sap len)
191+
#-woo-no-ssl
192+
(if (socket-ssl-handle socket)
193+
(cl+ssl::ssl-write (socket-ssl-handle socket)
194+
data-sap
195+
len)
196+
(wsys:write fd data-sap len))))
193197
(declare (type fixnum len)
194198
(type fixnum n))
195199
(case n

src/ev/tcp.lisp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@
100100
(ssl-handle (socket-ssl-handle socket)))
101101
(loop
102102
(let ((n
103+
#+woo-no-ssl
104+
(wsys:read fd (static-vectors:static-vector-pointer *input-buffer*) buffer-len)
105+
#-woo-no-ssl
103106
(if ssl-handle
104107
(cl+ssl::ssl-read ssl-handle (static-vectors:static-vector-pointer *input-buffer*) buffer-len)
105108
(wsys:read fd (static-vectors:static-vector-pointer *input-buffer*) buffer-len))))

src/woo.lisp

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
:socket-remote-addr
2121
:socket-remote-port
2222
:with-sockaddr)
23+
#-woo-no-ssl
24+
(:import-from :woo.ssl)
2325
(:import-from :woo.util
2426
:integer-string-p)
2527
(:import-from :quri
@@ -82,6 +84,7 @@
8284
(*listener* nil)
8385
(ssl (or ssl-key-file ssl-cert-file)))
8486
(labels ((start-socket (socket)
87+
#-woo-no-ssl
8588
(when ssl
8689
(woo.ssl:init-ssl-handle socket
8790
ssl-cert-file
@@ -130,17 +133,21 @@
130133
:sockopt wsock:+SO-REUSEADDR+)))
131134
(wev:close-tcp-server *listener*))))))
132135
(when ssl
133-
(cl+ssl::ensure-initialized)
134-
(when ssl-key-file
135-
(setf ssl-key-file
136-
(uiop:native-namestring
137-
(or (probe-file ssl-key-file)
138-
(error "SSL private key file '~A' does not exist." ssl-key-file)))))
139-
(when ssl-cert-file
140-
(setf ssl-cert-file
141-
(uiop:native-namestring
142-
(or (probe-file ssl-cert-file)
143-
(error "SSL certificate '~A' does not exist." ssl-cert-file))))))
136+
#+woo-no-ssl
137+
(warn "SSL certificate is specified but Woo's SSL feature is off. Ignored.")
138+
#-woo-no-ssl
139+
(progn
140+
(cl+ssl::ensure-initialized)
141+
(when ssl-key-file
142+
(setf ssl-key-file
143+
(uiop:native-namestring
144+
(or (probe-file ssl-key-file)
145+
(error "SSL private key file '~A' does not exist." ssl-key-file)))))
146+
(when ssl-cert-file
147+
(setf ssl-cert-file
148+
(uiop:native-namestring
149+
(or (probe-file ssl-cert-file)
150+
(error "SSL certificate '~A' does not exist." ssl-cert-file)))))))
144151
(if worker-num
145152
(start-multithread-server)
146153
(start-singlethread-server)))))

woo.asd

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
"trivial-mimes"
1818
"vom"
1919
"alexandria"
20-
#+sbcl "sb-posix"
21-
#+(and linux (not asdf3)) "uiop"
22-
#+sbcl "sb-concurrency"
23-
#-sbcl "cl-speedy-queue"
24-
"cl+ssl")
20+
(:feature :sbcl "sb-posix")
21+
(:feature (:and :linux (:not :asdf3)) "uiop")
22+
(:feature :sbcl "sb-concurrency")
23+
(:feature (:not :sbcl) "cl-speedy-queue")
24+
(:feature (:not :woo-no-ssl) "cl+ssl"))
2525
:components ((:module "src"
2626
:components
2727
((:file "woo" :depends-on ("ev" "response" "worker" "ssl" "signal" "specials" "util"))
@@ -38,7 +38,9 @@
3838
(:file "tcp" :depends-on ("event-loop" "socket" "util" "condition"))
3939
(:file "condition")
4040
(:file "util")))
41-
(:file "ssl" :depends-on ("ev-packages"))
41+
(:file "ssl"
42+
:depends-on ("ev-packages")
43+
:if-feature (:not :woo-no-ssl))
4244
(:module "llsocket"
4345
:depends-on ("syscall")
4446
:serial t

0 commit comments

Comments
 (0)