diff --git a/protocol/connections/engine.go b/protocol/connections/engine.go index dfb1ee8..e34ec7c 100644 --- a/protocol/connections/engine.go +++ b/protocol/connections/engine.go @@ -591,8 +591,7 @@ func (e *engine) sendPeerMessage(handle string, message model3.PeerMessage) erro if err == nil { peerApp, ok := (conn.App()).(*PeerApp) if ok { - peerApp.SendMessage(message) - return nil + return peerApp.SendMessage(message) } } log.Errorf("could not send peer message: %v", err) diff --git a/protocol/connections/peerapp.go b/protocol/connections/peerapp.go index f4448e2..f884314 100644 --- a/protocol/connections/peerapp.go +++ b/protocol/connections/peerapp.go @@ -108,10 +108,14 @@ func (pa *PeerApp) listen() { // SendMessage sends the peer a preformatted message // NOTE: This is a stub, we will likely want to extend this to better reflect the desired protocol -func (pa *PeerApp) SendMessage(message model2.PeerMessage) { +func (pa *PeerApp) SendMessage(message model2.PeerMessage) error { if message.Context == event.ContextGetVal { pa.getValRequests.Store(message.ID, string(message.Data)) } - serialized, _ := json.Marshal(message) - pa.connection.Send(serialized) + serialized, err := json.Marshal(message) + if err == nil { + pa.connection.Send(serialized) + return nil + } + return err }