diff options
author | obscuren <geffobscura@gmail.com> | 2015-01-06 00:10:42 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-01-06 00:10:42 +0800 |
commit | 6abf8ef78f1474fdeb7a6a6ce084bf994cc055f2 (patch) | |
tree | b898711590694cfaa6f10dbc2a4c8591232954ef /p2p/message.go | |
parent | b0854fbff5c3d588134f577918a39d08002235dc (diff) | |
download | go-tangerine-6abf8ef78f1474fdeb7a6a6ce084bf994cc055f2.tar.gz go-tangerine-6abf8ef78f1474fdeb7a6a6ce084bf994cc055f2.tar.zst go-tangerine-6abf8ef78f1474fdeb7a6a6ce084bf994cc055f2.zip |
Merge
Diffstat (limited to 'p2p/message.go')
-rw-r--r-- | p2p/message.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/p2p/message.go b/p2p/message.go index f5418ff47..a6f62ec4c 100644 --- a/p2p/message.go +++ b/p2p/message.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "errors" + "fmt" "io" "io/ioutil" "math/big" @@ -49,7 +50,14 @@ func encodePayload(params ...interface{}) []byte { // For the decoding rules, please see package rlp. func (msg Msg) Decode(val interface{}) error { s := rlp.NewListStream(msg.Payload, uint64(msg.Size)) - return s.Decode(val) + if err := s.Decode(val); err != nil { + return newPeerError(errInvalidMsg, "(code %#x) (size %d) %v", msg.Code, msg.Size, err) + } + return nil +} + +func (msg Msg) String() string { + return fmt.Sprintf("msg #%v (%v bytes)", msg.Code, msg.Size) } // Discard reads any remaining payload data into a black hole. |