mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-10 22:13:47 +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()
|
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
|
// Service returns the underlying node.Service
|
||||||
func (self *SimNode) Service() node.Service {
|
func (self *SimNode) Service() node.Service {
|
||||||
return self.service
|
return self.service
|
||||||
|
|
@ -234,9 +242,12 @@ func (self *SimNode) AddPeer(peer *discover.Node) {
|
||||||
if !exists {
|
if !exists {
|
||||||
panic(fmt.Sprintf("unknown peer: %s", peer.ID))
|
panic(fmt.Sprintf("unknown peer: %s", peer.ID))
|
||||||
}
|
}
|
||||||
|
if !peerNode.Running() {
|
||||||
|
return
|
||||||
|
}
|
||||||
p1, p2 := p2p.MsgPipe()
|
p1, p2 := p2p.MsgPipe()
|
||||||
localRW := NewMsgReporter(p1, &self.peerFeed, peer.ID)
|
localRW := p2p.NewMsgEventer(p1, &self.peerFeed, peer.ID)
|
||||||
peerRW := NewMsgReporter(p2, &self.peerFeed, self.Id.NodeID)
|
peerRW := p2p.NewMsgEventer(p2, &self.peerFeed, self.Id.NodeID)
|
||||||
self.peers[peer.ID] = peerRW
|
self.peers[peer.ID] = peerRW
|
||||||
peerNode.RunProtocol(self, peerRW)
|
peerNode.RunProtocol(self, peerRW)
|
||||||
self.RunProtocol(peerNode, localRW)
|
self.RunProtocol(peerNode, localRW)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue