aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent-messaging
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-04-25 15:47:06 +0100
committerChristopher Baines <mail@cbaines.net>2020-04-25 16:42:14 +0100
commit121b5628fb9d380c25a1b5470704adf26e58bbe4 (patch)
tree2dbd9fd72e541c555c92c96da5254cfda8a6cb37 /guix-build-coordinator/agent-messaging
parentbcf5fe50e60add30d1fd59ca98b8de81ad9aab18 (diff)
downloadbuild-coordinator-121b5628fb9d380c25a1b5470704adf26e58bbe4.tar
build-coordinator-121b5628fb9d380c25a1b5470704adf26e58bbe4.tar.gz
Extract out call-with-streaming-http-request
Diffstat (limited to 'guix-build-coordinator/agent-messaging')
-rw-r--r--guix-build-coordinator/agent-messaging/http.scm42
1 files changed, 8 insertions, 34 deletions
diff --git a/guix-build-coordinator/agent-messaging/http.scm b/guix-build-coordinator/agent-messaging/http.scm
index 58704e7..669981f 100644
--- a/guix-build-coordinator/agent-messaging/http.scm
+++ b/guix-build-coordinator/agent-messaging/http.scm
@@ -300,40 +300,14 @@ port. Also, the port used can be changed by passing the --port option.\n"
coordinator-uri
(string-append "/build/" build-id "/output/" output-name)))
- (define (write-body-for-file file port)
- (call-with-lzip-output-port
- (make-base64-output-port port)
- (lambda (port)
- (write-file file port))
- #:level 9))
-
- (let* ((port (open-socket-for-uri uri))
- (request
- (build-request
- uri
- #:method 'PUT
- #:version '(1 . 1)
- #:headers `((connection close)
- (Transfer-Encoding . "chunked")
- (Authorization . ,auth-value))
- #:port port)))
-
- (let ((request (write-request request port)))
- (let ((chunked-output-port
- (make-chunked-output-port
- (request-port request)
- ;; The number of bytes produced when the base64 port flushes
- ;; it's buffer
- #:buffering 9343
- #:keep-alive? #t)))
- (write-body-for-file file chunked-output-port)
- (close-port chunked-output-port))
-
- (let ((response (read-response port)))
- (let ((body (read-response-body response)))
- (close-port port)
- (values response
- body))))))
+ (call-with-streaming-http-request
+ uri
+ (lambda (port)
+ (call-with-lzip-output-port port
+ (lambda (port)
+ (write-file file port))
+ #:level 9))
+ #:headers `((Authorization . ,auth-value))))
(define (submit-build-result coordinator-uri agent-uuid password
build-id result)