1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

substitutes: Add #:keep-alive? keyword argument to download-nar.

To be consistent with other procedures that make network requests.

* guix/substitutes.scm (download-nar): Add #:keep-alive? option.
* guix/scripts/substitute.scm (process-substitution/fallback)
(process-substitution): Call download-nar with #:keep-alive? #t.

Change-Id: I83b27d0c3a0916d058fbbbeb7aa77dbb8a742768
This commit is contained in:
Christopher Baines
2024-04-18 17:25:33 +01:00
parent 53d306ca39
commit be84a75c39
2 changed files with 13 additions and 4 deletions

View File

@@ -408,7 +408,8 @@ way to download the nar."
#:fast-decompression?
fast-decompression?
#:open-connection-for-uri
open-connection-for-uri/cached))
open-connection-for-uri/cached
#:keep-alive? #t))
(loop rest)))
(()
(loop rest)))))))
@@ -461,7 +462,8 @@ PORT."
#:print-build-trace? print-build-trace?
#:fast-decompression? fast-decompression?
#:open-connection-for-uri
open-connection-for-uri/cached))))
open-connection-for-uri/cached
#:keep-alive? #t))))
(values narinfo
expected-hash
actual-hash)))

View File

@@ -467,7 +467,8 @@ again. If DURATION is #f, run BODY with no timeout."
#:key deduplicate? print-build-trace?
(fetch-timeout %fetch-timeout)
fast-decompression?
(open-connection-for-uri guix:open-connection-for-uri))
(open-connection-for-uri guix:open-connection-for-uri)
(keep-alive? #f))
"Download the nar prescribed in NARINFO, which is assumed to be authentic
and authorized, and write it to DESTINATION. When DEDUPLICATE? is true, and
if DESTINATION is in the store, deduplicate its files. Use
@@ -513,7 +514,7 @@ OPEN-CONNECTION-FOR-URI to open connections."
response
(http-fetch uri #:text? #f
#:port port
#:keep-alive? #t
#:keep-alive? keep-alive?
#:buffered? #f)))
(values port
(response-content-length response)))))))
@@ -596,6 +597,12 @@ OPEN-CONNECTION-FOR-URI to open connections."
;; Wait for the reporter to finish.
(every (compose zero? cdr waitpid) pids)
;; TODO The port should also be closed if the relevant HTTP response
;; header is set, but http-fetch doesn't currently share that
;; information
(unless keep-alive?
(close-port raw))
(values expected
(get-hash)))))