30 #include <boost/algorithm/string.hpp> 36 #undef ELECTRONEUM_DEFAULT_LOG_CATEGORY 37 #define ELECTRONEUM_DEFAULT_LOG_CATEGORY "updates" 43 std::vector<std::string> records;
46 MDEBUG(
"Checking updates for " << buildtag <<
" " << software);
49 static const std::vector<std::string> dns_urls = {
50 "updates.electroneumpulse.com",
51 "updates.electroneumpulse.info",
52 "updates.electroneumpulse.net",
53 "updates.electroneumpulse.org" 59 for (
const auto& record : records)
61 std::vector<std::string> fields;
62 boost::split(fields, record, boost::is_any_of(
":"));
63 if (fields.size() != 4)
65 MWARNING(
"Updates record does not have 4 fields: " << record);
69 if (software != fields[0] || buildtag != fields[1])
73 for (
auto c: fields[3])
76 if (fields[3].size() != 64 && !alnum)
78 MWARNING(
"Invalid hash: " << fields[3]);
88 if (cmp == 0 &&
hash != fields[3])
89 MWARNING(
"Two matches found for " << software <<
" version " <<
version <<
" on " << buildtag);
103 const char *base = user ?
"http://s3-eu-west-1.amazonaws.com/updates.electroneum.com/releases/download/v" :
"http://s3-eu-west-1.amazonaws.com/updates.electroneum.com/releases/download/v";
105 static const char *extension = strncmp(buildtag.c_str(),
"install-", 8) ?
".zip" :
".exe";
107 static const char extension[] =
".tar.bz2";
115 url = url +
version +
"/" + software +
"-" + buildtag +
"-v" +
version + extension;
version
Supported socks variants.