From df77de8c2157fbb4c0898586dacb2215286745c8 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 13 Nov 2019 23:09:27 +0000 Subject: Bugfix: GUI: Recognise NETWORK_LIMITED in formatServicesStr --- src/qt/guiutil.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/qt') diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index c4e0321f28..54e7a9e0b9 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -819,9 +819,8 @@ QString formatServicesStr(quint64 mask) { QStringList strList; - // Just scan the last 8 bits for now. - for (int i = 0; i < 8; i++) { - uint64_t check = 1 << i; + for (int i = 0; i < 64; i++) { + uint64_t check = 1LL << i; if (mask & check) { switch (check) @@ -838,8 +837,15 @@ QString formatServicesStr(quint64 mask) case NODE_WITNESS: strList.append("WITNESS"); break; + case NODE_NETWORK_LIMITED: + strList.append("NETWORK_LIMITED"); + break; default: - strList.append(QString("%1[%2]").arg("UNKNOWN").arg(check)); + if (i < 8) { + strList.append(QString("%1[%2]").arg("UNKNOWN").arg(check)); + } else { + strList.append(QString("%1[2^%2]").arg("UNKNOWN").arg(i)); + } } } } -- cgit v1.2.3 From 4341bffb6ef10909f3721329db27c5dc9bc720dd Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Thu, 14 Nov 2019 04:50:54 +0000 Subject: GUI: Refactor formatServicesStr to warn when a ServicesFlag is missing --- src/qt/guiutil.cpp | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) (limited to 'src/qt') diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 54e7a9e0b9..0130b43c4e 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -815,6 +815,24 @@ 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; @@ -823,30 +841,7 @@ QString formatServicesStr(quint64 mask) uint64_t check = 1LL << i; if (mask & check) { - switch (check) - { - case NODE_NETWORK: - strList.append("NETWORK"); - break; - case NODE_GETUTXO: - strList.append("GETUTXO"); - break; - case NODE_BLOOM: - strList.append("BLOOM"); - break; - case NODE_WITNESS: - strList.append("WITNESS"); - break; - case NODE_NETWORK_LIMITED: - strList.append("NETWORK_LIMITED"); - break; - default: - if (i < 8) { - strList.append(QString("%1[%2]").arg("UNKNOWN").arg(check)); - } else { - strList.append(QString("%1[2^%2]").arg("UNKNOWN").arg(i)); - } - } + strList.append(serviceFlagToStr(check, i)); } } -- cgit v1.2.3