Catch exception and shutdown peer in handshake fail (#1269)

* Catch exception and shutdown peer in handshake fail

* Don't raise exception on remove peer when doesn't exist
This commit is contained in:
Jonathan Zernik 2021-09-10 09:42:05 -07:00 committed by GitHub
parent 11ce7c275f
commit c2a3ea3ca4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 6 deletions

View file

@ -45,11 +45,11 @@ class Connection(object):
@contextmanager
def connect(self, connection_manager):
self.start_receiving_msgs()
self.handshake()
logger.debug("Adding peer.")
connection_manager.add_peer(self.peer)
try:
self.start_receiving_msgs()
self.handshake()
logger.debug("Adding peer.")
connection_manager.add_peer(self.peer)
logger.debug("Yielding peer.")
yield self
except Exception:

View file

@ -94,8 +94,7 @@ class ConnectionManager(object):
"""
with self.peers_lock:
if not self.has_connection(peer.remote_address):
logger.debug('Failed to remove peer {}'.format(peer))
raise MissingPeerError()
return
del self._peers[peer.remote_address]
logger.debug('Removed peer {}'.format(peer))
self.on_peers_changed()