aboutsummaryrefslogtreecommitdiff
path: root/tests/litmus.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/litmus.scm')
-rwxr-xr-xtests/litmus.scm47
1 files changed, 7 insertions, 40 deletions
diff --git a/tests/litmus.scm b/tests/litmus.scm
index 11d5fd9e..477c5946 100755
--- a/tests/litmus.scm
+++ b/tests/litmus.scm
@@ -8,9 +8,9 @@ exec $GUILE -e main -s "$0" "$@"
!#
(use-modules (calp server webdav)
+ (calp server socket)
(ice-9 threads)
(ice-9 rdelim)
- (web server)
(srfi srfi-1)
(srfi srfi-88))
@@ -23,48 +23,15 @@ exec $GUILE -e main -s "$0" "$@"
;;; Code:
-;;; NOTE this "page" is borrowed from (calp server server).
-;;; Possibly rewrite so that module actually works as a module,
-;;; And import it here
-
-
-;; NOTE The default make-default-socket is broken for IPv6.
-;; A patch has been submitted to the mailing list. 2020-03-31
-;;
-;; This sets up the socket manually, and sends that to @code{http-open}.
-(define* (make-default-socket/fixed family addr port)
- (let ((sock (socket family SOCK_STREAM 0)))
- (setsockopt sock SOL_SOCKET SO_REUSEADDR 1)
- (bind sock family addr port)
- sock))
-
-(define* (setup-socket key:
- (host #f)
- (family AF_INET)
- (addr (if host (inet-pton family host)
- INADDR_LOOPBACK))
- (port 8080))
- (make-default-socket/fixed family addr port))
-
-
(define (start-server out)
(begin-thread
- (let loop ((port 8102))
- (catch 'system-error
- (lambda ()
- (let ((socket (setup-socket port: port)))
- (format out "http://localhost:8102~%")
- (force-output out)
- (with-error-to-file "webdav.log"
- (lambda ()
- (run-server webdav-handler 'http
- `(socket: ,socket))))
- (format #t "Server closed~%")))
- (lambda (err proc fmt args data)
- (if (= EADDRINUSE (car data))
- (loop (1+ port))
- (apply throw err proc fmt args data)))))))
+ (with-error-to-file "webdav.log"
+ (lambda ()
+ (run-at-any-port
+ webdav-handler
+ min-port: 8102
+ msg-port: out)))))
(define (main args)