aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2019-03-29 14:28:17 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:59 +0800
commit6786ac62add22e773b5e192e13adfd5ef720869b (patch)
tree7b00437818e8133e59ce30e716e7f959249309a8
parentf0257e264b94b67137595e4a357589da7cfde82e (diff)
downloaddexon-6786ac62add22e773b5e192e13adfd5ef720869b.tar
dexon-6786ac62add22e773b5e192e13adfd5ef720869b.tar.gz
dexon-6786ac62add22e773b5e192e13adfd5ef720869b.tar.bz2
dexon-6786ac62add22e773b5e192e13adfd5ef720869b.tar.lz
dexon-6786ac62add22e773b5e192e13adfd5ef720869b.tar.xz
dexon-6786ac62add22e773b5e192e13adfd5ef720869b.tar.zst
dexon-6786ac62add22e773b5e192e13adfd5ef720869b.zip
core: fix forget connection in resetDKG (#314)
-rw-r--r--dex/handler.go2
-rw-r--r--dex/peer.go11
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) {