From fc71b18a5a29508bcfc05923fdf2af80030f2653 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 3 Jan 2022 01:13:26 +0530 Subject: 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. --- mumi/web/server.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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)) -- cgit v1.2.3