diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2020-09-03 22:09:04 +0000 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2020-09-03 22:09:04 +0000 |
commit | 975a47f7fe9365eacd214c196ce5747ea2a19c3b (patch) | |
tree | 5457a2ba3252a172c8fef1683ca09623bd43b9e2 /src/libstore/http-binary-cache-store.cc | |
parent | 4db0010a9374e357de3db3c0cf1cb1b490a14727 (diff) | |
parent | e7d93e7ece8fd6906e45d0ea21fa08e00b815ca8 (diff) |
Merge remote-tracking branch 'obsidian/single-ca-drv-build' into ca-floating-upstream
Diffstat (limited to 'src/libstore/http-binary-cache-store.cc')
-rw-r--r-- | src/libstore/http-binary-cache-store.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libstore/http-binary-cache-store.cc b/src/libstore/http-binary-cache-store.cc index c1ceb08cf..1733239fb 100644 --- a/src/libstore/http-binary-cache-store.cc +++ b/src/libstore/http-binary-cache-store.cc @@ -85,7 +85,7 @@ protected: checkEnabled(); try { - FileTransferRequest request(cacheUri + "/" + path); + FileTransferRequest request(makeRequest(path)); request.head = true; getFileTransfer()->download(request); return true; @@ -103,7 +103,7 @@ protected: std::shared_ptr<std::basic_iostream<char>> istream, const std::string & mimeType) override { - auto req = FileTransferRequest(cacheUri + "/" + path); + auto req = makeRequest(path); req.data = std::make_shared<string>(StreamToSourceAdapter(istream).drain()); req.mimeType = mimeType; try { @@ -115,8 +115,11 @@ protected: FileTransferRequest makeRequest(const std::string & path) { - FileTransferRequest request(cacheUri + "/" + path); - return request; + return FileTransferRequest( + hasPrefix(path, "https://") || hasPrefix(path, "http://") || hasPrefix(path, "file://") + ? path + : cacheUri + "/" + path); + } void getFile(const std::string & path, Sink & sink) override |