diff options
-rw-r--r-- | module/web/server.scm | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/module/web/server.scm b/module/web/server.scm index 42887e67f..fbd5d95ab 100644 --- a/module/web/server.scm +++ b/module/web/server.scm @@ -198,11 +198,13 @@ values." (display str port))))) (define (extend-response r k v . additional) + (define (extend-alist alist k v) + (let ((pair (assq k alist))) + (acons k v (if pair (delq pair alist) alist)))) (let ((r (build-response #:version (response-version r) #:code (response-code r) #:headers - (assoc-set! (copy-tree (response-headers r)) - k v) + (extend-alist (response-headers r) k v) #:port (response-port r)))) (if (null? additional) r |