From 562164afe0bf097e42a1e3e522d63d3ecd4de5de Mon Sep 17 00:00:00 2001 From: jagdeep sidhu Date: Fri, 11 Oct 2024 13:43:28 -0700 Subject: [PATCH] fix peer open/closing issue use custom fns for this dont touch the quit channel --- eth/backend.go | 4 ++-- eth/peerset.go | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/eth/backend.go b/eth/backend.go index 6a6242b6b2..6f7cbb4696 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -365,7 +365,7 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { // ensure 5 seconds has passed between blocks before we start peering so we are sure sync has finished if time.Now().Unix()-eth.timeLastBlock >= 5 { log.Info("Networking and peering start...") - eth.handler.peers.open() + eth.handler.peers.SetOpen() eth.p2pServer.Start() eth.Downloader().DoneEvent() eth.handler.synced.Store(true) @@ -522,7 +522,7 @@ func (s *Ethereum) Start() error { // SYSCOIN if s.blockchain.GetChainConfig().SyscoinBlock != nil { log.Info("Skip networking and peering...") - s.handler.peers.close() + s.handler.peers.SetClosed() s.p2pServer.Stop() } diff --git a/eth/peerset.go b/eth/peerset.go index 15b2ddf2af..fc2ea6ff72 100644 --- a/eth/peerset.go +++ b/eth/peerset.go @@ -239,9 +239,19 @@ func (ps *peerSet) close() { } // SYSCOIN -func (ps *peerSet) open() { +func (ps *peerSet) SetOpen() { ps.lock.Lock() defer ps.lock.Unlock() ps.closed = false } +func (ps *peerSet) SetClosed() { + ps.lock.Lock() + defer ps.lock.Unlock() + + for _, p := range ps.peers { + p.Disconnect(p2p.DiscQuitting) + } + + ps.closed = true +}