aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2019-03-29 14:28:17 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-15 22:09:55 +0800
commit7f51740c91641f64a4b8e302225299ad87742c42 (patch)
tree8d35ce549e165ad33dabb07911685b7f3c8bf73a
parent038552acaa883a6353c54274f80cb888fb23be68 (diff)
downloadgo-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar
go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.gz
go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.bz2
go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.lz
go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.xz
go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.tar.zst
go-tangerine-7f51740c91641f64a4b8e302225299ad87742c42.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) {