Make all messages be registered as pointer receivers,

Warn on unknown messages.
This commit is contained in:
Jae Kwon
2015-04-16 17:46:27 -07:00
parent 22fdb6ca2f
commit 89cfedeb73
4 changed files with 37 additions and 33 deletions
+4 -3
View File
@@ -3,6 +3,7 @@ package mempool
import (
"bytes"
"fmt"
"reflect"
"sync/atomic"
"github.com/tendermint/tendermint/binary"
@@ -99,7 +100,7 @@ func (memR *MempoolReactor) Receive(chId byte, src *p2p.Peer, msgBytes []byte) {
}
default:
// Ignore unknown message
log.Warn("Unknown message type %v", reflect.TypeOf(msg))
}
}
@@ -129,14 +130,14 @@ type MempoolMessage interface{}
var _ = binary.RegisterInterface(
struct{ MempoolMessage }{},
binary.ConcreteType{TxMessage{}, msgTypeTx},
binary.ConcreteType{&TxMessage{}, msgTypeTx},
)
func DecodeMessage(bz []byte) (msgType byte, msg MempoolMessage, err error) {
msgType = bz[0]
n := new(int64)
r := bytes.NewReader(bz)
msg = binary.ReadBinary(&msg, r, n, &err)
msg = binary.ReadBinary(struct{ MempoolMessage }{}, r, n, &err).(struct{ MempoolMessage }).MempoolMessage
return
}