From 5bc04e8837c0452923cebd1b823a85e5c4dcdfa6 Mon Sep 17 00:00:00 2001 From: Amiti Uttarwar Date: Tue, 2 Jun 2020 09:46:41 -0700 Subject: [rpc/net] Introduce addconnection to test outbounds & blockrelay Add a new RPC endpoint to enable opening outbound connections from the tests. The functional test framework currently uses the addnode RPC, which has different behavior than general outbound peers. These changes enable creating both full-relay and block-relay-only connections. The new RPC endpoint calls through to a newly introduced AddConnection method on CConnman that ensures we stay within the allocated max. --- src/net.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/net.h') diff --git a/src/net.h b/src/net.h index acc1da49a5..2973ddd0b9 100644 --- a/src/net.h +++ b/src/net.h @@ -955,6 +955,19 @@ public: bool RemoveAddedNode(const std::string& node); std::vector GetAddedNodeInfo(); + /** + * Attempts to open a connection. Currently only used from tests. + * + * @param[in] address Address of node to try connecting to + * @param[in] conn_type ConnectionType::OUTBOUND or ConnectionType::BLOCK_RELAY + * @return bool Returns false if there are no available + * slots for this connection: + * - conn_type not a supported ConnectionType + * - Max total outbound connection capacity filled + * - Max connection capacity for type is filled + */ + bool AddConnection(const std::string& address, ConnectionType conn_type); + size_t GetNodeCount(NumConnections num); void GetNodeStats(std::vector& vstats); bool DisconnectNode(const std::string& node); -- cgit v1.2.3