From: Mark Wooding Date: Fri, 11 May 2018 23:44:27 +0000 (+0100) Subject: svc/connect.in: Cope if a peer vanishes when we're trying to reconnect. X-Git-Tag: 1.5.0~88 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/tripe/commitdiff_plain/8ad21c29ca841c084d04db928f1015e95b0f2623?ds=sidebyside svc/connect.in: Cope if a peer vanishes when we're trying to reconnect. --- diff --git a/svc/connect.in b/svc/connect.in index 85217ccb..c68e520d 100644 --- a/svc/connect.in +++ b/svc/connect.in @@ -436,15 +436,18 @@ class PingPeer (object): me._peer])) def _reconnect(me): - peer = Peer(me._peer) - if me._connectp: - S.warn('connect', 'reconnecting', me._peer) - S.forcekx(me._peer) - T.spawn(run_connect, peer, peer.get('connect')) - me._timer = M.SelTimer(time() + me._every, me._time) - me._sabotage = False - else: - S.kill(me._peer) + try: + peer = Peer(me._peer) + if me._connectp: + S.warn('connect', 'reconnecting', me._peer) + S.forcekx(me._peer) + T.spawn(run_connect, peer, peer.get('connect')) + me._timer = M.SelTimer(time() + me._every, me._time) + me._sabotage = False + else: + S.kill(me._peer) + except TripeError, e: + if e.args[0] == 'unknown-peer': me._pinger.kill(me._peer) def event(me, code, stuff): """