diff options
author | Jonas Schnelli <dev@jonasschnelli.ch> | 2020-05-29 11:06:03 +0200 |
---|---|---|
committer | Jonas Schnelli <dev@jonasschnelli.ch> | 2020-05-29 11:06:08 +0200 |
commit | de369c7ea57745fbbbab5c7ba3ec8ab48f9e3ec5 (patch) | |
tree | e3a6a18be726bc347d7386aa144d07f22cd7c5b9 /src/rpc/util.cpp | |
parent | f4b603cff63aea798a55e7a129edf8324f8e19b1 (diff) | |
parent | c31bc5bcfddf440e9a1713f7ba2ca2bf9cfa8e2e (diff) | |
download | bitcoin-de369c7ea57745fbbbab5c7ba3ec8ab48f9e3ec5.tar.xz |
Merge #18165: Consolidate service flag bit-to-name conversion to a shared serviceFlagToStr function
c31bc5bcfddf440e9a1713f7ba2ca2bf9cfa8e2e Consolidate service flag bit-to-name conversion to a shared serviceFlagToStr function (Luke Dashjr)
cea91a1e40e12029140ebfba969ce3ef2965029c Bugfix: GUI: Use unsigned long long type to avoid implicit conversion of MSB check (Luke Dashjr)
Pull request description:
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.
ACKs for top commit:
jonasschnelli:
utACK ~~cea91a1e40e12029140ebfba969ce3ef2965029c~~ c31bc5bcfddf440e9a1713f7ba2ca2bf9cfa8e2e
Tree-SHA512: 32c7ba8ac7ef2d4087f4f317447ae93a328ec9fb9ad81301df2fbaeeb21a3db7a503187a369552b05a9414251b7cf8e15bcde74c1ea2ef36591ea7ffb6721f60
Diffstat (limited to 'src/rpc/util.cpp')
-rw-r--r-- | src/rpc/util.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/rpc/util.cpp b/src/rpc/util.cpp index 860fa198d5..0e13d8dfce 100644 --- a/src/rpc/util.cpp +++ b/src/rpc/util.cpp @@ -841,18 +841,15 @@ std::vector<CScript> EvalDescriptorStringOrObject(const UniValue& scanobject, Fl UniValue GetServicesNames(ServiceFlags services) { + const uint64_t services_n = services; UniValue servicesNames(UniValue::VARR); - if (services & NODE_NETWORK) - servicesNames.push_back("NETWORK"); - if (services & NODE_GETUTXO) - servicesNames.push_back("GETUTXO"); - if (services & NODE_BLOOM) - servicesNames.push_back("BLOOM"); - if (services & NODE_WITNESS) - servicesNames.push_back("WITNESS"); - if (services & NODE_NETWORK_LIMITED) - servicesNames.push_back("NETWORK_LIMITED"); + for (int i = 0; i < 64; ++i) { + const uint64_t mask = 1ull << i; + if (services_n & mask) { + servicesNames.push_back(serviceFlagToStr(mask, i)); + } + } return servicesNames; } |