download.hh: Fix conflicts from nix-channel-c++ merge

This commit is contained in:
Shea Levy 2016-08-31 09:57:56 -04:00
parent 572aba284a
commit dfe0938614
3 changed files with 7 additions and 16 deletions

View file

@ -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;

View file

@ -32,12 +32,7 @@ struct Downloader
virtual DownloadResult download(string url, const DownloadOptions & options) = 0;
Path downloadCached(ref<Store> store, const string & url, bool unpack, string name = "",
const Hash & expectedHash = Hash());
/* Need to overload because can't have an rvalue default value for non-const reference */
Path downloadCached(ref<Store> store, const string & url, bool unpack,
string & effectiveUrl, const Hash & expectedHash = Hash());
const Hash & expectedHash = Hash(), string * effectiveUrl = nullptr);
enum Error { NotFound, Forbidden, Misc, Transient };
};

View file

@ -86,7 +86,7 @@ static void update(const StringSet & channelNames)
// definition from a consistent location if the redirect changes mid-download.
auto effectiveUrl = string{};
auto dl = makeDownloader();
auto filename = dl->downloadCached(store, url, false, effectiveUrl);
auto filename = dl->downloadCached(store, url, false, "", Hash(), &effectiveUrl);
url = chomp(std::move(effectiveUrl));
// If the URL contains a version number, append it to the name