merge bitcoin#28782: Add missing sync on send_version in peer_connect

This commit is contained in:
Kittywhiskers Van Gogh 2024-10-14 20:53:38 +00:00
parent 35253cdd15
commit c0b3062215
No known key found for this signature in database
GPG Key ID: 30CD0C065E5C4AAD
2 changed files with 6 additions and 4 deletions

View File

@ -392,8 +392,8 @@ class P2PInterface(P2PConnection):
vt.strSubVer = self.strSubVer vt.strSubVer = self.strSubVer
self.on_connection_send_msg = vt # Will be sent soon after connection_made self.on_connection_send_msg = vt # Will be sent soon after connection_made
def peer_connect(self, *args, services=P2P_SERVICES, send_version=True, **kwargs): def peer_connect(self, *, services=P2P_SERVICES, send_version, **kwargs):
create_conn = super().peer_connect(*args, **kwargs) create_conn = super().peer_connect(**kwargs)
if send_version: if send_version:
self.peer_connect_send_version(services) self.peer_connect_send_version(services)

View File

@ -613,7 +613,7 @@ class TestNode():
assert_msg += "with expected error " + expected_msg assert_msg += "with expected error " + expected_msg
self._raise_assertion_error(assert_msg) self._raise_assertion_error(assert_msg)
def add_p2p_connection(self, p2p_conn, *, wait_for_verack=True, **kwargs): def add_p2p_connection(self, p2p_conn, *, wait_for_verack=True, send_version=True, **kwargs):
"""Add an inbound p2p connection to the node. """Add an inbound p2p connection to the node.
This method adds the p2p connection to the self.p2ps list and also This method adds the p2p connection to the self.p2ps list and also
@ -624,9 +624,11 @@ class TestNode():
kwargs['dstaddr'] = '127.0.0.1' kwargs['dstaddr'] = '127.0.0.1'
p2p_conn.p2p_connected_to_node = True p2p_conn.p2p_connected_to_node = True
p2p_conn.peer_connect(**kwargs, net=self.chain, timeout_factor=self.timeout_factor)() p2p_conn.peer_connect(**kwargs, send_version=send_version, net=self.chain, timeout_factor=self.timeout_factor)()
self.p2ps.append(p2p_conn) self.p2ps.append(p2p_conn)
p2p_conn.wait_until(lambda: p2p_conn.is_connected, check_connected=False) p2p_conn.wait_until(lambda: p2p_conn.is_connected, check_connected=False)
if send_version:
p2p_conn.wait_until(lambda: not p2p_conn.on_connection_send_msg)
if wait_for_verack: if wait_for_verack:
# Wait for the node to send us the version and verack # Wait for the node to send us the version and verack
p2p_conn.wait_for_verack() p2p_conn.wait_for_verack()