forked from cwtch.im/cwtch
Sending Message to an Offline Peer no longer blocks
This commit is contained in:
parent
eedfd872e5
commit
f056407cd0
|
@ -34,6 +34,11 @@ const (
|
||||||
SendMessageToPeer = Type("SendMessageToPeer")
|
SendMessageToPeer = Type("SendMessageToPeer")
|
||||||
NewMessageFromPeer = Type("NewMessageFromPeer")
|
NewMessageFromPeer = Type("NewMessageFromPeer")
|
||||||
|
|
||||||
|
// attributes:
|
||||||
|
// RemotePeer: [eg "chpr7qm6op5vfcg2pi4vllco3h6aa7exexc4rqwnlupqhoogx2zgd6qd"]
|
||||||
|
// Error: string describing the error
|
||||||
|
SendMessageToPeerError = Type("SendMessageToPeerError")
|
||||||
|
|
||||||
// REQUESTS TO STORAGE ENGINE
|
// REQUESTS TO STORAGE ENGINE
|
||||||
|
|
||||||
// a peer contact has been added
|
// a peer contact has been added
|
||||||
|
|
|
@ -85,9 +85,10 @@ func (e *Engine) eventHandler() {
|
||||||
case event.SendMessageToPeer:
|
case event.SendMessageToPeer:
|
||||||
log.Debugf("Sending Message to Peer.....")
|
log.Debugf("Sending Message to Peer.....")
|
||||||
ppc := e.connectionsManager.GetPeerPeerConnectionForOnion(ev.Data[event.RemotePeer])
|
ppc := e.connectionsManager.GetPeerPeerConnectionForOnion(ev.Data[event.RemotePeer])
|
||||||
if ppc != nil {
|
if ppc != nil && ppc.GetState() == AUTHENTICATED {
|
||||||
// TODO this will block.
|
|
||||||
ppc.SendPacket([]byte(ev.Data[event.Data]))
|
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:
|
case event.BlockPeer:
|
||||||
e.blocked.Store(ev.Data[event.RemotePeer], true)
|
e.blocked.Store(ev.Data[event.RemotePeer], true)
|
||||||
|
|
|
@ -135,6 +135,5 @@ func (psc *PeerServerConnection) Close() {
|
||||||
|
|
||||||
// HandleGroupMessage passes the given group message back to the profile.
|
// HandleGroupMessage passes the given group message back to the profile.
|
||||||
func (psc *PeerServerConnection) HandleGroupMessage(gm *protocol.GroupMessage) {
|
func (psc *PeerServerConnection) HandleGroupMessage(gm *protocol.GroupMessage) {
|
||||||
log.Debugf("Received Group Message")
|
|
||||||
psc.GroupMessageHandler(psc.Server, gm)
|
psc.GroupMessageHandler(psc.Server, gm)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue