parent
523d29256e
commit
9120fd5d14
|
@ -5,12 +5,13 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/tendermint/go-amino"
|
amino "github.com/tendermint/go-amino"
|
||||||
|
|
||||||
|
cmn "github.com/tendermint/tendermint/libs/common"
|
||||||
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
"github.com/tendermint/tendermint/p2p"
|
"github.com/tendermint/tendermint/p2p"
|
||||||
sm "github.com/tendermint/tendermint/state"
|
sm "github.com/tendermint/tendermint/state"
|
||||||
"github.com/tendermint/tendermint/types"
|
"github.com/tendermint/tendermint/types"
|
||||||
cmn "github.com/tendermint/tendermint/libs/common"
|
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -174,7 +175,7 @@ func (bcR *BlockchainReactor) respondToPeer(msg *bcBlockRequestMessage,
|
||||||
|
|
||||||
// Receive implements Reactor by handling 4 types of messages (look below).
|
// Receive implements Reactor by handling 4 types of messages (look below).
|
||||||
func (bcR *BlockchainReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte) {
|
func (bcR *BlockchainReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte) {
|
||||||
msg, err := DecodeMessage(msgBytes)
|
msg, err := decodeMsg(msgBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bcR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
bcR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
||||||
bcR.Switch.StopPeerForError(src, err)
|
bcR.Switch.StopPeerForError(src, err)
|
||||||
|
@ -342,17 +343,11 @@ func RegisterBlockchainMessages(cdc *amino.Codec) {
|
||||||
cdc.RegisterConcrete(&bcStatusRequestMessage{}, "tendermint/mempool/StatusRequest", nil)
|
cdc.RegisterConcrete(&bcStatusRequestMessage{}, "tendermint/mempool/StatusRequest", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DecodeMessage decodes BlockchainMessage.
|
func decodeMsg(bz []byte) (msg BlockchainMessage, err error) {
|
||||||
// TODO: ensure that bz is completely read.
|
|
||||||
func DecodeMessage(bz []byte) (msg BlockchainMessage, err error) {
|
|
||||||
if len(bz) > maxMsgSize {
|
if len(bz) > maxMsgSize {
|
||||||
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)",
|
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)", len(bz), maxMsgSize)
|
||||||
len(bz), maxMsgSize)
|
|
||||||
}
|
}
|
||||||
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
||||||
if err != nil {
|
|
||||||
err = cmn.ErrorWrap(err, "DecodeMessage() had bytes left over")
|
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,11 +9,11 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
amino "github.com/tendermint/go-amino"
|
amino "github.com/tendermint/go-amino"
|
||||||
cmn "github.com/tendermint/tendermint/libs/common"
|
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
|
||||||
|
|
||||||
cstypes "github.com/tendermint/tendermint/consensus/types"
|
cstypes "github.com/tendermint/tendermint/consensus/types"
|
||||||
|
cmn "github.com/tendermint/tendermint/libs/common"
|
||||||
tmevents "github.com/tendermint/tendermint/libs/events"
|
tmevents "github.com/tendermint/tendermint/libs/events"
|
||||||
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
"github.com/tendermint/tendermint/p2p"
|
"github.com/tendermint/tendermint/p2p"
|
||||||
sm "github.com/tendermint/tendermint/state"
|
sm "github.com/tendermint/tendermint/state"
|
||||||
"github.com/tendermint/tendermint/types"
|
"github.com/tendermint/tendermint/types"
|
||||||
|
@ -184,7 +184,7 @@ func (conR *ConsensusReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
msg, err := DecodeMessage(msgBytes)
|
msg, err := decodeMsg(msgBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
conR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
conR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
||||||
conR.Switch.StopPeerForError(src, err)
|
conR.Switch.StopPeerForError(src, err)
|
||||||
|
@ -1307,11 +1307,9 @@ func RegisterConsensusMessages(cdc *amino.Codec) {
|
||||||
cdc.RegisterConcrete(&ProposalHeartbeatMessage{}, "tendermint/ProposalHeartbeat", nil)
|
cdc.RegisterConcrete(&ProposalHeartbeatMessage{}, "tendermint/ProposalHeartbeat", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DecodeMessage decodes the given bytes into a ConsensusMessage.
|
func decodeMsg(bz []byte) (msg ConsensusMessage, err error) {
|
||||||
func DecodeMessage(bz []byte) (msg ConsensusMessage, err error) {
|
|
||||||
if len(bz) > maxMsgSize {
|
if len(bz) > maxMsgSize {
|
||||||
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)",
|
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)", len(bz), maxMsgSize)
|
||||||
len(bz), maxMsgSize)
|
|
||||||
}
|
}
|
||||||
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
||||||
return
|
return
|
||||||
|
|
|
@ -5,10 +5,10 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/tendermint/go-amino"
|
amino "github.com/tendermint/go-amino"
|
||||||
|
|
||||||
clist "github.com/tendermint/tendermint/libs/clist"
|
clist "github.com/tendermint/tendermint/libs/clist"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
|
|
||||||
"github.com/tendermint/tendermint/p2p"
|
"github.com/tendermint/tendermint/p2p"
|
||||||
"github.com/tendermint/tendermint/types"
|
"github.com/tendermint/tendermint/types"
|
||||||
)
|
)
|
||||||
|
@ -73,7 +73,7 @@ func (evR *EvidenceReactor) RemovePeer(peer p2p.Peer, reason interface{}) {
|
||||||
// Receive implements Reactor.
|
// Receive implements Reactor.
|
||||||
// It adds any received evidence to the evpool.
|
// It adds any received evidence to the evpool.
|
||||||
func (evR *EvidenceReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte) {
|
func (evR *EvidenceReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte) {
|
||||||
msg, err := DecodeMessage(msgBytes)
|
msg, err := decodeMsg(msgBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
evR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
evR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
||||||
evR.Switch.StopPeerForError(src, err)
|
evR.Switch.StopPeerForError(src, err)
|
||||||
|
@ -204,11 +204,9 @@ func RegisterEvidenceMessages(cdc *amino.Codec) {
|
||||||
"tendermint/evidence/EvidenceListMessage", nil)
|
"tendermint/evidence/EvidenceListMessage", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DecodeMessage decodes a byte-array into a EvidenceMessage.
|
func decodeMsg(bz []byte) (msg EvidenceMessage, err error) {
|
||||||
func DecodeMessage(bz []byte) (msg EvidenceMessage, err error) {
|
|
||||||
if len(bz) > maxMsgSize {
|
if len(bz) > maxMsgSize {
|
||||||
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)",
|
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)", len(bz), maxMsgSize)
|
||||||
len(bz), maxMsgSize)
|
|
||||||
}
|
}
|
||||||
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
||||||
return
|
return
|
||||||
|
|
|
@ -78,7 +78,7 @@ func (memR *MempoolReactor) RemovePeer(peer p2p.Peer, reason interface{}) {
|
||||||
// Receive implements Reactor.
|
// Receive implements Reactor.
|
||||||
// It adds any received transactions to the mempool.
|
// It adds any received transactions to the mempool.
|
||||||
func (memR *MempoolReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte) {
|
func (memR *MempoolReactor) Receive(chID byte, src p2p.Peer, msgBytes []byte) {
|
||||||
msg, err := DecodeMessage(msgBytes)
|
msg, err := decodeMsg(msgBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
memR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
memR.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
||||||
memR.Switch.StopPeerForError(src, err)
|
memR.Switch.StopPeerForError(src, err)
|
||||||
|
@ -174,11 +174,9 @@ func RegisterMempoolMessages(cdc *amino.Codec) {
|
||||||
cdc.RegisterConcrete(&TxMessage{}, "tendermint/mempool/TxMessage", nil)
|
cdc.RegisterConcrete(&TxMessage{}, "tendermint/mempool/TxMessage", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DecodeMessage decodes a byte-array into a MempoolMessage.
|
func decodeMsg(bz []byte) (msg MempoolMessage, err error) {
|
||||||
func DecodeMessage(bz []byte) (msg MempoolMessage, err error) {
|
|
||||||
if len(bz) > maxMsgSize {
|
if len(bz) > maxMsgSize {
|
||||||
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)",
|
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)", len(bz), maxMsgSize)
|
||||||
len(bz), maxMsgSize)
|
|
||||||
}
|
}
|
||||||
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
err = cdc.UnmarshalBinaryBare(bz, &msg)
|
||||||
return
|
return
|
||||||
|
|
|
@ -206,7 +206,7 @@ func (r *PEXReactor) RemovePeer(p Peer, reason interface{}) {
|
||||||
|
|
||||||
// Receive implements Reactor by handling incoming PEX messages.
|
// Receive implements Reactor by handling incoming PEX messages.
|
||||||
func (r *PEXReactor) Receive(chID byte, src Peer, msgBytes []byte) {
|
func (r *PEXReactor) Receive(chID byte, src Peer, msgBytes []byte) {
|
||||||
msg, err := DecodeMessage(msgBytes)
|
msg, err := decodeMsg(msgBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
r.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
r.Logger.Error("Error decoding message", "src", src, "chId", chID, "msg", msg, "err", err, "bytes", msgBytes)
|
||||||
r.Switch.StopPeerForError(src, err)
|
r.Switch.StopPeerForError(src, err)
|
||||||
|
@ -670,11 +670,9 @@ func RegisterPexMessage(cdc *amino.Codec) {
|
||||||
cdc.RegisterConcrete(&pexAddrsMessage{}, "tendermint/p2p/PexAddrsMessage", nil)
|
cdc.RegisterConcrete(&pexAddrsMessage{}, "tendermint/p2p/PexAddrsMessage", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DecodeMessage implements interface registered above.
|
func decodeMsg(bz []byte) (msg PexMessage, err error) {
|
||||||
func DecodeMessage(bz []byte) (msg PexMessage, err error) {
|
|
||||||
if len(bz) > maxMsgSize {
|
if len(bz) > maxMsgSize {
|
||||||
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)",
|
return msg, fmt.Errorf("Msg exceeds max size (%d > %d)", len(bz), maxMsgSize)
|
||||||
len(bz), maxMsgSize)
|
|
||||||
}
|
}
|
||||||
err = cdc.UnmarshalBinary(bz, &msg)
|
err = cdc.UnmarshalBinary(bz, &msg)
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue