Sending Message to an Offline Peer no longer blocks

This commit is contained in:
Sarah Jamie Lewis 2019-02-14 13:04:40 -08:00
parent eedfd872e5
commit f056407cd0
3 changed files with 8 additions and 3 deletions

View File

@ -34,6 +34,11 @@ const (
SendMessageToPeer = Type("SendMessageToPeer")
NewMessageFromPeer = Type("NewMessageFromPeer")
// attributes:
// RemotePeer: [eg "chpr7qm6op5vfcg2pi4vllco3h6aa7exexc4rqwnlupqhoogx2zgd6qd"]
// Error: string describing the error
SendMessageToPeerError = Type("SendMessageToPeerError")
// REQUESTS TO STORAGE ENGINE
// a peer contact has been added

View File

@ -85,9 +85,10 @@ func (e *Engine) eventHandler() {
case event.SendMessageToPeer:
log.Debugf("Sending Message to Peer.....")
ppc := e.connectionsManager.GetPeerPeerConnectionForOnion(ev.Data[event.RemotePeer])
if ppc != nil {
// TODO this will block.
if ppc != nil && ppc.GetState() == AUTHENTICATED {
ppc.SendPacket([]byte(ev.Data[event.Data]))
} else {
e.eventManager.Publish(event.NewEvent(event.SendMessageToPeerError, map[event.Field]string{event.RemotePeer: ev.Data[event.RemotePeer], event.Error: "peer is offline or the connection has yet to finalize"}))
}
case event.BlockPeer:
e.blocked.Store(ev.Data[event.RemotePeer], true)

View File

@ -135,6 +135,5 @@ func (psc *PeerServerConnection) Close() {
// HandleGroupMessage passes the given group message back to the profile.
func (psc *PeerServerConnection) HandleGroupMessage(gm *protocol.GroupMessage) {
log.Debugf("Received Group Message")
psc.GroupMessageHandler(psc.Server, gm)
}