diff options
Diffstat (limited to 'guix-build-coordinator/utils.scm')
-rw-r--r-- | guix-build-coordinator/utils.scm | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm index 6139835..a9d7edf 100644 --- a/guix-build-coordinator/utils.scm +++ b/guix-build-coordinator/utils.scm @@ -268,7 +268,7 @@ streaming?) (with-port-timeouts (lambda () - (let* ((port (open-socket-for-uri uri)) + (let* ((port (open-socket-for-uri* uri)) (request (build-request uri @@ -1436,13 +1436,18 @@ again." #:fragment (uri-fragment uri)) uri)) - (let ((s (open-socket-for-uri plain-uri))) - (values - (if https? - (tls-wrap s (uri-host uri) - #:verify-certificate? verify-certificate?) - s) - s))) + (let* ((s (open-socket-for-uri plain-uri)) + (port + (if https? + (tls-wrap s (uri-host uri) + #:verify-certificate? verify-certificate?) + s))) + (values port + (if non-blocking? + ;; Guile/guile-gnutls don't handle the handshake happening on + ;; a non blocking socket, so change the behavior here. + (non-blocking-port s) + s)))) (define (check-locale!) (with-exception-handler |