mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
net: create GetNetworkNames()
This commit is contained in:
parent
b45eae4d53
commit
1c3af37881
3 changed files with 17 additions and 1 deletions
|
@ -36,7 +36,7 @@ static constexpr int ADDRV2_FORMAT = 0x20000000;
|
||||||
* @note An address may belong to more than one network, for example `10.0.0.1`
|
* @note An address may belong to more than one network, for example `10.0.0.1`
|
||||||
* belongs to both `NET_UNROUTABLE` and `NET_IPV4`.
|
* belongs to both `NET_UNROUTABLE` and `NET_IPV4`.
|
||||||
* Keep these sequential starting from 0 and `NET_MAX` as the last entry.
|
* Keep these sequential starting from 0 and `NET_MAX` as the last entry.
|
||||||
* We have loops like `for (int i = 0; i < NET_MAX; i++)` that expect to iterate
|
* We have loops like `for (int i = 0; i < NET_MAX; ++i)` that expect to iterate
|
||||||
* over all enum values and also `GetExtNetwork()` "extends" this enum by
|
* over all enum values and also `GetExtNetwork()` "extends" this enum by
|
||||||
* introducing standalone constants starting from `NET_MAX`.
|
* introducing standalone constants starting from `NET_MAX`.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -68,6 +68,20 @@ std::string GetNetworkName(enum Network net)
|
||||||
assert(false);
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> GetNetworkNames(bool append_unroutable)
|
||||||
|
{
|
||||||
|
std::vector<std::string> names;
|
||||||
|
for (int n = 0; n < NET_MAX; ++n) {
|
||||||
|
const enum Network network{static_cast<Network>(n)};
|
||||||
|
if (network == NET_UNROUTABLE || network == NET_I2P || network == NET_CJDNS || network == NET_INTERNAL) continue;
|
||||||
|
names.emplace_back(GetNetworkName(network));
|
||||||
|
}
|
||||||
|
if (append_unroutable) {
|
||||||
|
names.emplace_back(GetNetworkName(NET_UNROUTABLE));
|
||||||
|
}
|
||||||
|
return names;
|
||||||
|
}
|
||||||
|
|
||||||
bool static LookupIntern(const std::string& name, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup)
|
bool static LookupIntern(const std::string& name, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup)
|
||||||
{
|
{
|
||||||
vIP.clear();
|
vIP.clear();
|
||||||
|
|
|
@ -39,6 +39,8 @@ public:
|
||||||
|
|
||||||
enum Network ParseNetwork(const std::string& net);
|
enum Network ParseNetwork(const std::string& net);
|
||||||
std::string GetNetworkName(enum Network net);
|
std::string GetNetworkName(enum Network net);
|
||||||
|
/** Return a vector of publicly routable Network names; optionally append NET_UNROUTABLE. */
|
||||||
|
std::vector<std::string> GetNetworkNames(bool append_unroutable = false);
|
||||||
bool SetProxy(enum Network net, const proxyType &addrProxy);
|
bool SetProxy(enum Network net, const proxyType &addrProxy);
|
||||||
bool GetProxy(enum Network net, proxyType &proxyInfoOut);
|
bool GetProxy(enum Network net, proxyType &proxyInfoOut);
|
||||||
bool IsProxy(const CNetAddr &addr);
|
bool IsProxy(const CNetAddr &addr);
|
||||||
|
|
Loading…
Add table
Reference in a new issue