aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/updates.cpp2
-rw-r--r--src/cryptonote_core/cryptonote_core.cpp37
2 files changed, 24 insertions, 15 deletions
diff --git a/src/common/updates.cpp b/src/common/updates.cpp
index 936106881..c84566f57 100644
--- a/src/common/updates.cpp
+++ b/src/common/updates.cpp
@@ -96,7 +96,7 @@ namespace tools
std::string get_update_url(const std::string &software, const std::string &subdir, const std::string &buildtag, const std::string &version)
{
- static const char base[] = "https://downloads.getmonero.org/";
+ static const char base[] = "https://updates.getmonero.org/";
#ifdef _WIN32
static const char extension[] = ".zip";
#else
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;
}
//-----------------------------------------------------------------------------------------------