Skip to content

Commit

Permalink
merge bitcoin#29239: Make v2transport default for addnode RPC when en…
Browse files Browse the repository at this point in the history
…abled
  • Loading branch information
kwvg committed Oct 9, 2024
1 parent e39196e commit 3caaa7a
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
7 changes: 4 additions & 3 deletions src/rpc/net.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ static RPCHelpMan addnode()
{
{"node", RPCArg::Type::STR, RPCArg::Optional::NO, "The node (see getpeerinfo for nodes)"},
{"command", RPCArg::Type::STR, RPCArg::Optional::NO, "'add' to add a node to the list, 'remove' to remove a node from the list, 'onetry' to try a connection to the node once"},
{"v2transport", RPCArg::Type::BOOL, RPCArg::Default{false}, "Attempt to connect using BIP324 v2 transport protocol (ignored for 'remove' command)"},
{"v2transport", RPCArg::Type::BOOL, RPCArg::DefaultHint{"set by -v2transport"}, "Attempt to connect using BIP324 v2 transport protocol (ignored for 'remove' command)"},
},
RPCResult{RPCResult::Type::NONE, "", ""},
RPCExamples{
Expand All @@ -332,9 +332,10 @@ static RPCHelpMan addnode()
CConnman& connman = EnsureConnman(node);

std::string strNode = request.params[0].get_str();
bool use_v2transport = request.params[2].isNull() ? false : request.params[2].get_bool();
bool node_v2transport = connman.GetLocalServices() & NODE_P2P_V2;
bool use_v2transport = request.params[2].isNull() ? node_v2transport : request.params[2].get_bool();

if (use_v2transport && !(node.connman->GetLocalServices() & NODE_P2P_V2)) {
if (use_v2transport && !node_v2transport) {
throw JSONRPCError(RPC_INVALID_PARAMETER, "Error: v2transport requested but not enabled (see -v2transport)");
}

Expand Down
6 changes: 3 additions & 3 deletions test/functional/test_framework/test_framework.py
Original file line number Diff line number Diff line change
Expand Up @@ -705,10 +705,10 @@ def connect_nodes(self, a, b, *, peer_advertises_v2=None):
if peer_advertises_v2 is None:
peer_advertises_v2 = from_connection.use_v2transport

if peer_advertises_v2:
from_connection.addnode(node=ip_port, command="onetry", v2transport=True)
if peer_advertises_v2 != from_connection.use_v2transport:
from_connection.addnode(node=ip_port, command="onetry", v2transport=peer_advertises_v2)
else:
# skip the optional third argument (default false) for
# skip the optional third argument if it matches the default, for
# compatibility with older clients
from_connection.addnode(ip_port, "onetry")

Expand Down

0 comments on commit 3caaa7a

Please sign in to comment.