rpc: addpeeraddress: throw on invalid IP
Throw RPC_CLIENT_INVALID_IP_OR_SUBNET when LookupHost(addr, false) fails
in addpeeraddress. This aligns with setban/addconnection and avoids the
opaque {"success": false} result for input errors. The JSON {success,
error?} object remains for addrman outcomes only. Update test to match.
This commit is contained in:
1 parent
74fa028da1
commit
316a0c5132
2 files changed
+22
-17
No files matched your search
@@ -344,9 +344,12 @@ class NetTest(BitcoinTestFramework):
|
||||
assert "unknown command: addpeeraddress" not in node.help("addpeeraddress")
|
||||
|
||||
self.log.debug("Test that adding an empty address fails")
|
||||
assert_equal(node.addpeeraddress(address="", port=8333), {"success": False})
|
||||
assert_raises_rpc_error(-30, "Invalid IP address", node.addpeeraddress, address="", port=8333)
|
||||
assert_equal(node.getnodeaddresses(count=0), [])
|
||||
|
||||
self.log.debug("Test that adding a non-IP/hostname fails (no DNS lookup allowed)")
|
||||
assert_raises_rpc_error(-30, "Invalid IP address", node.addpeeraddress, address="not_an_ip", port=8333)
|
||||
|
||||
self.log.debug("Test that non-bool tried fails")
|
||||
assert_raises_rpc_error(-3, "JSON value of type string is not of expected type bool", self.nodes[0].addpeeraddress, address="1.2.3.4", tried="True", port=1234)
|
||||
|
||||
|
||||
Reference in new issue
Block a user