aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/utils.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-05-09 20:38:02 +0100
committerChristopher Baines <mail@cbaines.net>2020-05-09 20:38:02 +0100
commitab86dd62a77f59a73360bf85a2ba89405c352153 (patch)
tree97ca340c22a66aaa17eca79ad32540879afa3541 /guix-build-coordinator/utils.scm
parent4f09a15fad7b4787ab7a3a14d1af42b6cda115b7 (diff)
downloadbuild-coordinator-ab86dd62a77f59a73360bf85a2ba89405c352153.tar
build-coordinator-ab86dd62a77f59a73360bf85a2ba89405c352153.tar.gz
Stop base64 encoding chunked requests
I'm not sure why I did this... but it's slower and more complex than just not base64 encoding the data.
Diffstat (limited to 'guix-build-coordinator/utils.scm')
-rw-r--r--guix-build-coordinator/utils.scm21
1 files changed, 6 insertions, 15 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm
index 1dd4cbf..1e34df7 100644
--- a/guix-build-coordinator/utils.scm
+++ b/guix-build-coordinator/utils.scm
@@ -268,27 +268,18 @@ upcoming chunk."
#:port port)))
(let ((request (write-request request port)))
- (let* ((chunked-output-port
- (make-chunked-output-port
- port
- ;; The number of bytes produced when the base64 port flushes
- ;; it's buffer
- #:buffering (let ((lines 65536)
- (line-length 72))
- (- (* (+ line-length 1)
- lines)
- 1))
- #:keep-alive? #t))
- (base64-output-port
- (make-base64-output-port chunked-output-port)))
+ (let ((chunked-output-port
+ (make-chunked-output-port
+ port
+ #:buffering (expt 2 20)
+ #:keep-alive? #t)))
;; A SIGPIPE will kill Guile, so ignore it
(sigaction SIGPIPE
(lambda (arg)
(simple-format (current-error-port) "warning: SIGPIPE\n")))
- (callback base64-output-port)
- (close-port base64-output-port)
+ (callback chunked-output-port)
(close-port chunked-output-port)
(display "\r\n" port)
(force-output port))