diff options
Diffstat (limited to 'src/libstore/download.cc')
-rw-r--r-- | src/libstore/download.cc | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/libstore/download.cc b/src/libstore/download.cc index 5cb2b497a50a..ed7e124d25f4 100644 --- a/src/libstore/download.cc +++ b/src/libstore/download.cc @@ -249,13 +249,7 @@ ref<Downloader> makeDownloader() return make_ref<CurlDownloader>(); } -Path Downloader::downloadCached(ref<Store> store, const string & url_, bool unpack, string name, const Hash & expectedHash) -{ - string ignored; - return downloadCached(store, url_, unpack, ignored, expectedHash); -} - -Path Downloader::downloadCached(ref<Store> store, const string & url_, bool unpack, string & effectiveUrl, const Hash & expectedHash) +Path Downloader::downloadCached(ref<Store> store, const string & url_, bool unpack, string name, const Hash & expectedHash, string * effectiveUrl) { auto url = resolveUri(url_); @@ -295,7 +289,8 @@ Path Downloader::downloadCached(ref<Store> store, const string & url_, bool unpa time_t lastChecked; if (string2Int(ss[2], lastChecked) && lastChecked + ttl >= time(0)) { skip = true; - effectiveUrl = url_; + if (effectiveUrl) + *effectiveUrl = url_; } else if (!ss[1].empty()) { printMsg(lvlDebug, format("verifying previous ETag ‘%1%’") % ss[1]); expectedETag = ss[1]; @@ -311,7 +306,8 @@ Path Downloader::downloadCached(ref<Store> store, const string & url_, bool unpa DownloadOptions options; options.expectedETag = expectedETag; auto res = download(url, options); - effectiveUrl = res.effectiveUrl; + if (effectiveUrl) + *effectiveUrl = res.effectiveUrl; if (!res.cached) { ValidPathInfo info; |