summaryrefslogtreecommitdiff
path: root/guix/substitutes.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-21 10:42:41 +0100
committerGuix Patches Tester <>2024-04-21 11:53:27 +0200
commit9ab5244680450f3d8e21d593a18c8d07cc2fe26a (patch)
tree203a328169a1a5a8df38ac7cc686f590e8672b9d /guix/substitutes.scm
parentfeebf1167faa1e1977ddf8816892c81ce5dbdb9b (diff)
downloadguix-patches-issue-70494.tar
guix-patches-issue-70494.tar.gz
substitutes: Add #:keep-alive? keyword argument to download-nar.issue-70494
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
Diffstat (limited to 'guix/substitutes.scm')
-rw-r--r--guix/substitutes.scm11
1 files changed, 9 insertions, 2 deletions
diff --git a/guix/substitutes.scm b/guix/substitutes.scm
index 5089f3a6da..7c8f8cc973 100644
--- a/guix/substitutes.scm
+++ b/guix/substitutes.scm
@@ -462,7 +462,8 @@ again."
#:key deduplicate? print-build-trace?
(fetch-timeout %fetch-timeout)
prefer-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."
@@ -505,7 +506,7 @@ if DESTINATION is in the store, deduplicate its files."
(raise c))))
(http-fetch uri #:text? #f
#:port port
- #:keep-alive? #t
+ #:keep-alive? keep-alive?
#:buffered? #f)))))
(else
(raise
@@ -586,6 +587,12 @@ if DESTINATION is in the store, deduplicate its files."
;; 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)))))