mirror of
https://github.com/fluencelabs/tendermint
synced 2025-07-31 20:21:56 +00:00
fix bug, peer may be nil
This commit is contained in:
@@ -112,11 +112,10 @@ func (bcR *BlockchainReactor) Receive(chId byte, src *p2p.Peer, msgBytes []byte)
|
|||||||
log.Warn("Error decoding message", "error", err)
|
log.Warn("Error decoding message", "error", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Info("BlockchainReactor received message", "msg", msg_)
|
log.Debug("BlockchainReactor received message", "msg", msg_)
|
||||||
|
|
||||||
switch msg := msg_.(type) {
|
switch msg := msg_.(type) {
|
||||||
case BlockRequestMessage:
|
case BlockRequestMessage:
|
||||||
log.Debug("Got BlockRequest", "msg", msg)
|
|
||||||
// Got a request for a block. Respond with block if we have it.
|
// Got a request for a block. Respond with block if we have it.
|
||||||
block := bcR.store.LoadBlock(msg.Height)
|
block := bcR.store.LoadBlock(msg.Height)
|
||||||
if block != nil {
|
if block != nil {
|
||||||
@@ -129,11 +128,9 @@ func (bcR *BlockchainReactor) Receive(chId byte, src *p2p.Peer, msgBytes []byte)
|
|||||||
// TODO peer is asking for things we don't have.
|
// TODO peer is asking for things we don't have.
|
||||||
}
|
}
|
||||||
case BlockResponseMessage:
|
case BlockResponseMessage:
|
||||||
log.Debug("Got BlockResponse", "msg", msg)
|
|
||||||
// Got a block.
|
// Got a block.
|
||||||
bcR.pool.AddBlock(msg.Block, src.Key)
|
bcR.pool.AddBlock(msg.Block, src.Key)
|
||||||
case PeerStatusMessage:
|
case PeerStatusMessage:
|
||||||
log.Debug("Got PeerStatus", "msg", msg)
|
|
||||||
// Got a peer status.
|
// Got a peer status.
|
||||||
bcR.pool.SetPeerHeight(src.Key, msg.Height)
|
bcR.pool.SetPeerHeight(src.Key, msg.Height)
|
||||||
default:
|
default:
|
||||||
@@ -165,7 +162,9 @@ FOR_LOOP:
|
|||||||
case peerId := <-bcR.timeoutsCh: // chan string
|
case peerId := <-bcR.timeoutsCh: // chan string
|
||||||
// Peer timed out.
|
// Peer timed out.
|
||||||
peer := bcR.sw.Peers().Get(peerId)
|
peer := bcR.sw.Peers().Get(peerId)
|
||||||
bcR.sw.StopPeerForError(peer, errors.New("BlockchainReactor Timeout"))
|
if peer != nil {
|
||||||
|
bcR.sw.StopPeerForError(peer, errors.New("BlockchainReactor Timeout"))
|
||||||
|
}
|
||||||
case _ = <-trySyncTicker.C: // chan time
|
case _ = <-trySyncTicker.C: // chan time
|
||||||
var lastValidatedBlock *types.Block
|
var lastValidatedBlock *types.Block
|
||||||
SYNC_LOOP:
|
SYNC_LOOP:
|
||||||
|
Reference in New Issue
Block a user