mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 23:26:44 +00:00
p2p/simulations: Don't allow connections to stopped SimNodes
Signed-off-by: Lewis Marshall <lewis@lmars.net>
This commit is contained in:
parent
d3543fb458
commit
ff24b603d0
1 changed files with 13 additions and 2 deletions
|
|
@ -154,6 +154,14 @@ func (self *SimNode) Stop() error {
|
|||
return self.service.Stop()
|
||||
}
|
||||
|
||||
// Running returns whether or not the service is running by checking if the
|
||||
// RPC client is set
|
||||
func (self *SimNode) Running() bool {
|
||||
self.lock.Lock()
|
||||
defer self.lock.Unlock()
|
||||
return self.client != nil
|
||||
}
|
||||
|
||||
// Service returns the underlying node.Service
|
||||
func (self *SimNode) Service() node.Service {
|
||||
return self.service
|
||||
|
|
@ -234,9 +242,12 @@ func (self *SimNode) AddPeer(peer *discover.Node) {
|
|||
if !exists {
|
||||
panic(fmt.Sprintf("unknown peer: %s", peer.ID))
|
||||
}
|
||||
if !peerNode.Running() {
|
||||
return
|
||||
}
|
||||
p1, p2 := p2p.MsgPipe()
|
||||
localRW := NewMsgReporter(p1, &self.peerFeed, peer.ID)
|
||||
peerRW := NewMsgReporter(p2, &self.peerFeed, self.Id.NodeID)
|
||||
localRW := p2p.NewMsgEventer(p1, &self.peerFeed, peer.ID)
|
||||
peerRW := p2p.NewMsgEventer(p2, &self.peerFeed, self.Id.NodeID)
|
||||
self.peers[peer.ID] = peerRW
|
||||
peerNode.RunProtocol(self, peerRW)
|
||||
self.RunProtocol(peerNode, localRW)
|
||||
|
|
|
|||
Loading…
Reference in a new issue