summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2013-09-12 18:45:13 -0400
committerMark H Weaver <mhw@netris.org>2013-09-12 18:45:13 -0400
commit76702cdcefb1d4a149b78fa0a474d22bed348e75 (patch)
tree8890026d5e60de5a5b303afe38e3014beaf220d0
parent3b2226ec916b648b23a2ae30ce1a657d16d61314 (diff)
downloadguile-76702cdcefb1d4a149b78fa0a474d22bed348e75.tar.gz
Web: Use functional setters in extend-request and extend-response.
* module/web/client.scm (extend-request): * module/web/server.scm (extend-response): Reimplement using functional setters.
-rw-r--r--module/web/client.scm13
-rw-r--r--module/web/server.scm10
2 files changed, 9 insertions, 14 deletions
diff --git a/module/web/client.scm b/module/web/client.scm
index 4da361ab7..3f6c45bfe 100644
--- a/module/web/client.scm
+++ b/module/web/client.scm
@@ -41,6 +41,8 @@
#:use-module (web uri)
#:use-module (web http)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-9 gnu)
#:export (current-http-proxy
open-socket-for-uri
http-get
@@ -103,14 +105,9 @@
(loop (cdr addresses))))))))
(define (extend-request r k v . additional)
- (let ((r (build-request (request-uri r)
- #:method (request-method r)
- #:version (request-version r)
- #:headers
- (assoc-set! (copy-tree (request-headers r))
- k v)
- #:port (request-port r)
- #:meta (request-meta r))))
+ (let ((r (set-field r (request-headers)
+ (assoc-set! (copy-tree (request-headers r))
+ k v))))
(if (null? additional)
r
(apply extend-request r additional))))
diff --git a/module/web/server.scm b/module/web/server.scm
index bc204808d..99196faf9 100644
--- a/module/web/server.scm
+++ b/module/web/server.scm
@@ -74,6 +74,7 @@
(define-module (web server)
#:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-9 gnu)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 binary-ports)
#:use-module (web request)
@@ -164,12 +165,9 @@ values."
#: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
- (assoc-set! (copy-tree (response-headers r))
- k v)
- #:port (response-port r))))
+ (let ((r (set-field r (response-headers)
+ (assoc-set! (copy-tree (response-headers r))
+ k v))))
(if (null? additional)
r
(apply extend-response r additional))))