41 bool check_updates(
const std::string &software,
const std::string &buildtag, std::string &
version, std::string &hash)
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);
95 MINFO(
"Found new version " <<
version <<
" with hash " << hash);