diff options
author | Christopher Baines <mail@cbaines.net> | 2020-05-09 20:38:02 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-05-09 20:38:02 +0100 |
commit | ab86dd62a77f59a73360bf85a2ba89405c352153 (patch) | |
tree | 97ca340c22a66aaa17eca79ad32540879afa3541 /guix-build-coordinator/utils.scm | |
parent | 4f09a15fad7b4787ab7a3a14d1af42b6cda115b7 (diff) | |
download | build-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.scm | 21 |
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)) |