summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac <arunisaac@systemreboot.net>2022-01-03 01:13:26 +0530
committerRicardo Wurmus <rekado@elephly.net>2022-01-07 16:42:26 +0100
commitfc71b18a5a29508bcfc05923fdf2af80030f2653 (patch)
treec734e6bd8d5f89f9e07695d80b5887a9a43c2f1b
parent8573667f538e2e65c9dd59b7f8fc5c02d3da32a5 (diff)
web: Wrap handler before passing to run-server.
This enables live hacking via the REPL. * mumi/web/server.scm: Import (srfi srfi-26). (start-mumi-web-server): Wrap handler before passing it to run-server.
-rw-r--r--mumi/web/server.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/mumi/web/server.scm b/mumi/web/server.scm
index db7662a..6de6fa4 100644
--- a/mumi/web/server.scm
+++ b/mumi/web/server.scm
@@ -18,6 +18,7 @@
(define-module (mumi web server)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:use-module (web http)
#:use-module (web request)
#:use-module (web uri)
@@ -39,6 +40,11 @@
(format (current-error-port)
"Mumi web server listening on http://~a:~a/~%"
address port)
- (run-server handler
+ ;; Wrap handler in another function to support live hacking via the
+ ;; REPL. If handler is passed as is and is then redefined via the
+ ;; REPL, the web server will still be using the old handler. The
+ ;; only way to update the handler reference held by the web server
+ ;; would be to restart the web server.
+ (run-server (cut handler <> <>)
#:addr (inet-pton AF_INET address)
#:port port))