aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/release-notes.md3
-rw-r--r--src/rpc/net.cpp2
-rwxr-xr-xtest/functional/rpc_net.py3
3 files changed, 7 insertions, 1 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 334dfa80a4..4ef94cf754 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -126,6 +126,9 @@ Changes to Wallet or GUI related settings can be found in the GUI or Wallet sect
- Passing an invalid `-rpcauth` argument now cause bitcoind to fail to start. (#20461)
+- The `getnodeaddresses` RPC now returns a "network" field indicating the
+ network type (ipv4, ipv6, onion, or i2p) for each address. (#21594)
+
Tools and Utilities
-------------------
diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp
index 96533a50c8..aff9bf7ae1 100644
--- a/src/rpc/net.cpp
+++ b/src/rpc/net.cpp
@@ -848,6 +848,7 @@ static RPCHelpMan getnodeaddresses()
{RPCResult::Type::NUM, "services", "The services offered"},
{RPCResult::Type::STR, "address", "The address of the node"},
{RPCResult::Type::NUM, "port", "The port of the node"},
+ {RPCResult::Type::STR, "network", "The network (" + Join(GetNetworkNames(), ", ") + ") the node connected through"},
}},
}
},
@@ -879,6 +880,7 @@ static RPCHelpMan getnodeaddresses()
obj.pushKV("services", (uint64_t)addr.nServices);
obj.pushKV("address", addr.ToStringIP());
obj.pushKV("port", addr.GetPort());
+ obj.pushKV("network", GetNetworkName(addr.GetNetClass()));
ret.push_back(obj);
}
return ret;
diff --git a/test/functional/rpc_net.py b/test/functional/rpc_net.py
index 9adb32c3c5..16d7958712 100755
--- a/test/functional/rpc_net.py
+++ b/test/functional/rpc_net.py
@@ -195,7 +195,7 @@ class NetTest(BitcoinTestFramework):
for i in range(10000):
first_octet = i >> 8
second_octet = i % 256
- a = "{}.{}.1.1".format(first_octet, second_octet)
+ a = "{}.{}.1.1".format(first_octet, second_octet) # IPV4
imported_addrs.append(a)
self.nodes[0].addpeeraddress(a, 8333)
@@ -212,6 +212,7 @@ class NetTest(BitcoinTestFramework):
assert_equal(a["services"], NODE_NETWORK | NODE_WITNESS)
assert a["address"] in imported_addrs
assert_equal(a["port"], 8333)
+ assert_equal(a["network"], "ipv4")
node_addresses = self.nodes[0].getnodeaddresses(1)
assert_equal(len(node_addresses), 1)