diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2019-03-29 14:28:17 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-15 22:09:55 +0800 |
commit | 7f51740c91641f64a4b8e302225299ad87742c42 (patch) | |
tree | 8d35ce549e165ad33dabb07911685b7f3c8bf73a | |
parent | 038552acaa883a6353c54274f80cb888fb23be68 (diff) | |
download | go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.gz go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.zst go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.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) { |