From a53c31fda7724235558eb88518a5d6fe32a11bc6 Mon Sep 17 00:00:00 2001 From: Kevin F Date: Sun, 20 Mar 2022 12:51:25 -0500 Subject: [PATCH] peer.get_socket implementations now must take timeout arg used for initial connection --- src/gossip/client/announce.py | 2 +- src/gossip/client/peerexchange.py | 2 +- src/gossip/connectpeer.py | 2 +- src/gossip/peer.py | 2 +- static-data/default-plugins/tor/torpeer.py | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gossip/client/announce.py b/src/gossip/client/announce.py index e336f6d1..fd41af6c 100644 --- a/src/gossip/client/announce.py +++ b/src/gossip/client/announce.py @@ -17,7 +17,7 @@ def do_announce(peer_set): our_transport_address = our_transport_address.encode('utf-8') except AttributeError: pass - sock = announce_peer.get_socket() + sock = announce_peer.get_socket(12) sock.sendall( command_to_byte(GossipCommands.ANNOUNCE) + our_transport_address) if int.from_bytes(sock.recv(1), 'big') != 1: diff --git a/src/gossip/client/peerexchange.py b/src/gossip/client/peerexchange.py index 571e4bf6..b5ea7996 100644 --- a/src/gossip/client/peerexchange.py +++ b/src/gossip/client/peerexchange.py @@ -15,7 +15,7 @@ MAX_PEERS = 10 def _ask_peer(peer, peer_set): - s: 'socket' = peer.get_socket() + s: 'socket' = peer.get_socket(12) s.sendall(command_to_byte(GossipCommands.PEER_EXCHANGE)) # Get 10 max peers for _ in range(MAX_PEERS): diff --git a/src/gossip/connectpeer.py b/src/gossip/connectpeer.py index 2432a891..0c027db3 100644 --- a/src/gossip/connectpeer.py +++ b/src/gossip/connectpeer.py @@ -6,7 +6,7 @@ def connect_peer(peer_set, peer): if peer in peer_set: return try: - s = peer.get_socket() + s = peer.get_socket(12) except Exception: logger.warn(f"Could not connect to {peer.transport_address}") else: diff --git a/src/gossip/peer.py b/src/gossip/peer.py index 8d007d32..48dde8b5 100644 --- a/src/gossip/peer.py +++ b/src/gossip/peer.py @@ -8,7 +8,7 @@ class Peer(Protocol): def __init__(self): return - def get_socket(self) -> 'socket.socket': + def get_socket(self, connect_timeout) -> 'socket.socket': return def disconnect(self): diff --git a/static-data/default-plugins/tor/torpeer.py b/static-data/default-plugins/tor/torpeer.py index 8c1fd6ed..5d53855f 100644 --- a/static-data/default-plugins/tor/torpeer.py +++ b/static-data/default-plugins/tor/torpeer.py @@ -10,10 +10,10 @@ class TorPeer: self.socks_host = socks_host self.socks_port = socks_port - def get_socket(self) -> socks.socksocket: + def get_socket(self, connect_timeout) -> socks.socksocket: s = socks.socksocket() s.set_proxy(socks.SOCKS4, self.socks_host, self.socks_port, rdns=True) - s.settimeout(60) + s.settimeout(connect_timeout) s.connect((self.onion_address, 80)) return s