diff --git a/p2p/peer.go b/p2p/peer.go index ba5d42d32..9668d34be 100644 --- a/p2p/peer.go +++ b/p2p/peer.go @@ -261,7 +261,15 @@ func (p *peer) Send(e Envelope) bool { } else if !p.hasChannel(e.ChannelID) { return false } - msgBytes, err := proto.Marshal(e.Message) + msg := e.Message + if w, ok := msg.(Wrapper); ok { + var err error + msg, err = w.Wrap() + if err != nil { + panic(err) + } + } + msgBytes, err := proto.Marshal(msg) if err != nil { panic(err) // Q: should this panic or error? } @@ -284,7 +292,15 @@ func (p *peer) TrySend(e Envelope) bool { } else if !p.hasChannel(e.ChannelID) { return false } - msgBytes, err := proto.Marshal(e.Message) + msg := e.Message + if w, ok := msg.(Wrapper); ok { + var err error + msg, err = w.Wrap() + if err != nil { + panic(err) + } + } + msgBytes, err := proto.Marshal(msg) if err != nil { panic(err) }