test: make python p2p not send getaddr messages when it's being connected to

Bitcoind nodes send getaddr msgs only to outbound nodes (and ignore those
received by outgoing connections). The python p2p node should mirror
this behavior by not sending a getaddr message when it is not the
initiator of the connection.
This commit is contained in:
Martin Zumsande 2023-10-10 12:11:00 -04:00
parent 04265ba937
commit 88c33c6748
2 changed files with 4 additions and 1 deletions

View File

@ -456,7 +456,8 @@ class P2PInterface(P2PConnection):
self.send_message(msg_verack())
self.nServices = message.nServices
self.relay = message.relay
self.send_message(msg_getaddr())
if self.p2p_connected_to_node:
self.send_message(msg_getaddr())
# Connection helper methods

View File

@ -646,6 +646,7 @@ class TestNode():
if 'dstaddr' not in kwargs:
kwargs['dstaddr'] = '127.0.0.1'
p2p_conn.p2p_connected_to_node = True
p2p_conn.peer_connect(**kwargs, net=self.chain, timeout_factor=self.timeout_factor)()
self.p2ps.append(p2p_conn)
p2p_conn.wait_until(lambda: p2p_conn.is_connected, check_connected=False)
@ -691,6 +692,7 @@ class TestNode():
self.log.debug("Connecting to %s:%d %s" % (address, port, connection_type))
self.addconnection('%s:%d' % (address, port), connection_type)
p2p_conn.p2p_connected_to_node = False
p2p_conn.peer_accept_connection(connect_cb=addconnection_callback, connect_id=p2p_idx + 1, net=self.chain, timeout_factor=self.timeout_factor, **kwargs)()
if connection_type == "feeler":