Consolidate service flag bit-to-name conversion to a shared serviceFlagToStr function

Side effect: this results in the RPC showing unknown service bits as "UNKNOWN[n]" like the GUI.

Note that there is no common mask-to-vector<string> function because both GUI and RPC would need to iterate through it to convert to their desired target formats.
This commit is contained in:
Luke Dashjr
2020-02-17 01:53:13 +00:00
parent cea91a1e40
commit c31bc5bcfd
4 changed files with 35 additions and 30 deletions

View File

@@ -737,24 +737,6 @@ QString formatDurationStr(int secs)
return strList.join(" ");
}
QString serviceFlagToStr(const quint64 mask, const int bit)
{
switch (ServiceFlags(mask)) {
case NODE_NONE: abort(); // impossible
case NODE_NETWORK: return "NETWORK";
case NODE_GETUTXO: return "GETUTXO";
case NODE_BLOOM: return "BLOOM";
case NODE_WITNESS: return "WITNESS";
case NODE_NETWORK_LIMITED: return "NETWORK_LIMITED";
// Not using default, so we get warned when a case is missing
}
if (bit < 8) {
return QString("%1[%2]").arg("UNKNOWN").arg(mask);
} else {
return QString("%1[2^%2]").arg("UNKNOWN").arg(bit);
}
}
QString formatServicesStr(quint64 mask)
{
QStringList strList;
@@ -763,7 +745,7 @@ QString formatServicesStr(quint64 mask)
uint64_t check = 1ull << i;
if (mask & check)
{
strList.append(serviceFlagToStr(check, i));
strList.append(QString::fromStdString(serviceFlagToStr(mask, i)));
}
}