aboutsummaryrefslogtreecommitdiff
path: root/src/cryptonote_core
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-02-22 09:35:35 +0200
committerRiccardo Spagni <ric@spagni.net>2017-02-22 09:35:35 +0200
commit80a088a4febada25586a398e4752eeec865e7d09 (patch)
treead1e5cb61651bdcd07d5687f02ab6d3ab441d5af /src/cryptonote_core
parentMerge pull request #1771 (diff)
parentcore: do not download an update we already downloaded (diff)
downloadmonero-80a088a4febada25586a398e4752eeec865e7d09.tar.xz
Merge pull request #1767
708758b7 core: do not download an update we already downloaded (moneromooo-monero) 45101550 updates: use updates host, not downloads, for HTTP (moneromooo-monero)
Diffstat (limited to 'src/cryptonote_core')
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp37
1 files changed, 23 insertions, 14 deletions
diff --git a/src/cryptonote_core/cryptonote_core.cpp b/src/cryptonote_core/cryptonote_core.cpp
index ce5acdaf8..44e1c807f 100644
--- a/src/cryptonote_core/cryptonote_core.cpp
+++ b/src/cryptonote_core/cryptonote_core.cpp
@@ -1100,7 +1100,7 @@ namespace cryptonote
return true;
std::string version, hash;
- MDEBUG("Checking for a new " << software << " version for " << buildtag);
+ MCDEBUG("updates", "Checking for a new " << software << " version for " << buildtag);
if (!tools::check_updates(software, buildtag, m_testnet, version, hash))
return false;
@@ -1121,28 +1121,37 @@ namespace cryptonote
filename = std::string(software) + "-update-" + version;
boost::filesystem::path path(epee::string_tools::get_current_module_folder());
path /= filename;
- if (!tools::download(path.string(), url))
- {
- MERROR("Failed to download " << url);
- return false;
- }
+
crypto::hash file_hash;
- if (!tools::sha256sum(path.string(), file_hash))
+ if (!tools::sha256sum(path.string(), file_hash) || (hash != epee::string_tools::pod_to_hex(file_hash)))
{
- MERROR("Failed to hash " << path);
- return false;
+ MCDEBUG("updates", "We don't have that file already, downloading");
+ if (!tools::download(path.string(), url))
+ {
+ MCERROR("updates", "Failed to download " << url);
+ return false;
+ }
+ if (!tools::sha256sum(path.string(), file_hash))
+ {
+ MCERROR("updates", "Failed to hash " << path);
+ return false;
+ }
+ if (hash != epee::string_tools::pod_to_hex(file_hash))
+ {
+ MCERROR("updates", "Download from " << url << " does not match the expected hash");
+ return false;
+ }
+ MCINFO("updates", "New version downloaded to " << path);
}
- if (hash != epee::string_tools::pod_to_hex(file_hash))
+ else
{
- MERROR("Download from " << url << " does not match the expected hash");
- return false;
+ MCDEBUG("updates", "We already have " << path << " with expected hash");
}
- MGINFO("New version downloaded to " << path);
if (check_updates_level == UPDATES_DOWNLOAD)
return true;
- MERROR("Download/update not implemented yet");
+ MCERROR("updates", "Download/update not implemented yet");
return true;
}
//-----------------------------------------------------------------------------------------------