Provide more information if the server can't bind the port
As this could be a common problem.
This commit is contained in:
parent
ebb8ab8066
commit
865e856e8f
1 changed files with 22 additions and 5 deletions
|
|
@ -19,9 +19,11 @@
|
||||||
(define-module (guix-data-service web server)
|
(define-module (guix-data-service web server)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
#:use-module (web http)
|
#:use-module (web http)
|
||||||
#:use-module (web request)
|
#:use-module (web request)
|
||||||
#:use-module (web uri)
|
#:use-module (web uri)
|
||||||
|
#:use-module (system repl error-handling)
|
||||||
#:use-module (fibers web server)
|
#:use-module (fibers web server)
|
||||||
#:use-module (guix-data-service web controller)
|
#:use-module (guix-data-service web controller)
|
||||||
#:use-module (guix-data-service web util)
|
#:use-module (guix-data-service web util)
|
||||||
|
|
@ -46,8 +48,23 @@
|
||||||
(run-controller controller request body secret-key-base)))
|
(run-controller controller request body secret-key-base)))
|
||||||
|
|
||||||
(define (start-guix-data-service-web-server port host secret-key-base)
|
(define (start-guix-data-service-web-server port host secret-key-base)
|
||||||
(run-server (lambda (request body)
|
(call-with-error-handling
|
||||||
(handler request body controller
|
(lambda ()
|
||||||
secret-key-base))
|
(run-server (lambda (request body)
|
||||||
#:host host
|
(handler request body controller
|
||||||
#:port port))
|
secret-key-base))
|
||||||
|
#:host host
|
||||||
|
#:port port))
|
||||||
|
#:on-error 'backtrace
|
||||||
|
#:post-error (lambda (key . args)
|
||||||
|
(when (eq? key 'system-error)
|
||||||
|
(match args
|
||||||
|
(("bind" "~A" ("Address already in use") _)
|
||||||
|
(simple-format
|
||||||
|
(current-error-port)
|
||||||
|
"\n
|
||||||
|
error: guix-data-service could not start, as it could not bind to port ~A
|
||||||
|
|
||||||
|
Check if it's already running, or whether another process is using that
|
||||||
|
port. Also, the port used can be changed by passing the --port option.\n"
|
||||||
|
port)))))))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue