diff options
author | Christopher Baines <mail@cbaines.net> | 2020-04-25 15:47:06 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-04-25 16:42:14 +0100 |
commit | 121b5628fb9d380c25a1b5470704adf26e58bbe4 (patch) | |
tree | 2dbd9fd72e541c555c92c96da5254cfda8a6cb37 /guix-build-coordinator/agent-messaging | |
parent | bcf5fe50e60add30d1fd59ca98b8de81ad9aab18 (diff) | |
download | build-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.scm | 42 |
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) |