mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
merge bitcoin#28632: make python p2p not send getaddr on incoming connections
This commit is contained in:
parent
6a4ca62fd1
commit
35253cdd15
@ -257,15 +257,16 @@ class AddrTest(BitcoinTestFramework):
|
|||||||
full_outbound_peer.sync_with_ping()
|
full_outbound_peer.sync_with_ping()
|
||||||
assert full_outbound_peer.getaddr_received()
|
assert full_outbound_peer.getaddr_received()
|
||||||
|
|
||||||
self.log.info('Check that we do not send a getaddr message upon connecting to a block-relay-only peer')
|
self.log.info('Check that we do not send a getaddr message to a block-relay-only or inbound peer')
|
||||||
block_relay_peer = self.nodes[0].add_outbound_p2p_connection(AddrReceiver(), p2p_idx=1, connection_type="block-relay-only")
|
block_relay_peer = self.nodes[0].add_outbound_p2p_connection(AddrReceiver(), p2p_idx=1, connection_type="block-relay-only")
|
||||||
block_relay_peer.sync_with_ping()
|
block_relay_peer.sync_with_ping()
|
||||||
assert_equal(block_relay_peer.getaddr_received(), False)
|
assert_equal(block_relay_peer.getaddr_received(), False)
|
||||||
|
|
||||||
self.log.info('Check that we answer getaddr messages only from inbound peers')
|
|
||||||
inbound_peer = self.nodes[0].add_p2p_connection(AddrReceiver(send_getaddr=False))
|
inbound_peer = self.nodes[0].add_p2p_connection(AddrReceiver(send_getaddr=False))
|
||||||
inbound_peer.sync_with_ping()
|
inbound_peer.sync_with_ping()
|
||||||
|
assert_equal(inbound_peer.getaddr_received(), False)
|
||||||
|
|
||||||
|
self.log.info('Check that we answer getaddr messages only from inbound peers')
|
||||||
# Add some addresses to addrman
|
# Add some addresses to addrman
|
||||||
for i in range(1000):
|
for i in range(1000):
|
||||||
first_octet = i >> 8
|
first_octet = i >> 8
|
||||||
|
@ -490,7 +490,8 @@ class P2PInterface(P2PConnection):
|
|||||||
self.send_message(msg_sendaddrv2())
|
self.send_message(msg_sendaddrv2())
|
||||||
self.send_message(msg_verack())
|
self.send_message(msg_verack())
|
||||||
self.nServices = message.nServices
|
self.nServices = message.nServices
|
||||||
self.send_message(msg_getaddr())
|
if self.p2p_connected_to_node:
|
||||||
|
self.send_message(msg_getaddr())
|
||||||
|
|
||||||
# Connection helper methods
|
# Connection helper methods
|
||||||
|
|
||||||
|
@ -623,6 +623,7 @@ class TestNode():
|
|||||||
if 'dstaddr' not in kwargs:
|
if 'dstaddr' not in kwargs:
|
||||||
kwargs['dstaddr'] = '127.0.0.1'
|
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)()
|
p2p_conn.peer_connect(**kwargs, 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)
|
||||||
@ -667,6 +668,7 @@ class TestNode():
|
|||||||
self.log.debug("Connecting to %s:%d %s" % (address, port, connection_type))
|
self.log.debug("Connecting to %s:%d %s" % (address, port, connection_type))
|
||||||
self.addconnection('%s:%d' % (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)()
|
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":
|
if connection_type == "feeler":
|
||||||
|
Loading…
Reference in New Issue
Block a user