#:post-error (lambda _ (values #f #f #f))))
(define (extend-response r k v . additional)
- (let ((r (build-response #:version (response-version r)
- #:code (response-code r)
- #:headers
- (extend-alist (response-headers r) k v)
- #:port (response-port r))))
+ (define (extend-alist alist k v)
+ (let ((pair (assq k alist)))
+ (acons k v (if pair (delq pair alist) alist))))
- (assoc-set! (copy-tree (response-headers r))
- k v))))
+ (let ((r (set-field r (response-headers)
++ (extend-alist (response-headers r) k v))))
(if (null? additional)
r
(apply extend-response r additional))))