diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2019-03-29 14:28:17 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 13:50:05 +0800 |
commit | d2613624b567d2fa6ab4cb139552af1b887529c8 (patch) | |
tree | c62bb7512862d6cd79c17da3c92772544942273e | |
parent | 15d61770f40d68b46cd37dc17593eb49cf53564c (diff) | |
download | dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.tar dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.tar.gz dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.tar.bz2 dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.tar.lz dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.tar.xz dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.tar.zst dexon-d2613624b567d2fa6ab4cb139552af1b887529c8.zip |
core: fix forget connection in resetDKG (#314)
-rw-r--r-- | dex/handler.go | 2 | ||||
-rw-r--r-- | dex/peer.go | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/dex/handler.go b/dex/handler.go index 161f4a4d8..6395c4113 100644 --- a/dex/handler.go +++ b/dex/handler.go @@ -1351,7 +1351,7 @@ func (pm *ProtocolManager) peerSetLoop() { pm.peers.ForgetConnection(round - 1) } } else if newRound == round && resetCount+1 == reset { - pm.peers.ForgetConnection(newRound) + pm.peers.ForgetLabelConnection(peerLabel{set: notaryset, round: newRound}) pm.gov.PurgeNotarySet(newRound) pm.peers.BuildConnection(newRound) } else { diff --git a/dex/peer.go b/dex/peer.go index d3650d00d..d0e717233 100644 --- a/dex/peer.go +++ b/dex/peer.go @@ -922,7 +922,18 @@ func (ps *peerSet) BuildConnection(round uint64) { ps.buildGroupConn(notaryLabel) } } +} + +func (ps *peerSet) ForgetLabelConnection(label peerLabel) { + ps.lock.Lock() + defer ps.lock.Unlock() + log.Debug("Forget label connection", "label", label) + ps.forgetDirectConn(label) + ps.forgetGroupConn(label) + delete(ps.directConn, label) + delete(ps.groupConnPeers, label) + delete(ps.label2Nodes, label) } func (ps *peerSet) ForgetConnection(round uint64) { |