summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-07-14 15:19:07 +0200
committerLudovic Courtès <ludo@gnu.org>2016-07-14 19:07:07 +0200
commita7a3b390600351014bee523cadb25c9a242064e9 (patch)
tree096eb01921d6745f7675b08b6fafa421ff053591 /guix
parent6619f9c7696d2cae54a8f4e235bfed0e3e36f36d (diff)
downloadguix-patches-a7a3b390600351014bee523cadb25c9a242064e9.tar
guix-patches-a7a3b390600351014bee523cadb25c9a242064e9.tar.gz
substitute: Gracefully handle trailing slashes in URLs.
Previously, using something like "--substitute-urls=http://example.org///" would lead to a 'cache-narinfo!' call with #f as its second argument. It would also do the wrong thing for URLs with a non-empty initial path component, such as "http://example.org/foo/bar". * guix/scripts/substitute.scm (fetch-narinfos)[handle-narinfo-response]: Add call to 'basename' for PATH.
Diffstat (limited to 'guix')
-rwxr-xr-xguix/scripts/substitute.scm3
1 files changed, 2 insertions, 1 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 5722aa821d..8827c45fb8 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -610,7 +610,8 @@ if file doesn't exist, and the narinfo otherwise."
(update-progress!)
(cons narinfo result))
(let* ((path (uri-path (request-uri request)))
- (hash-part (string-drop-right path 8))) ; drop ".narinfo"
+ (hash-part (basename
+ (string-drop-right path 8)))) ;drop ".narinfo"
(if len
(get-bytevector-n port len)
(read-to-eof port))