|
|
@ -101,6 +101,7 @@ func NewProtocolEngine(identity primitives.Identity, privateKey ed25519.PrivateK
|
|
|
|
engine.eventManager.Subscribe(event.SendMessageToPeer, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.SendMessageToPeer, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.SendGetValMessageToPeer, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.SendGetValMessageToPeer, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.SendRetValMessageToPeer, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.SendRetValMessageToPeer, engine.queue)
|
|
|
|
|
|
|
|
engine.eventManager.Subscribe(event.DeleteContact, engine.queue)
|
|
|
|
|
|
|
|
|
|
|
|
engine.eventManager.Subscribe(event.UpdateConversationAuthorization, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.UpdateConversationAuthorization, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.BlockUnknownPeers, engine.queue)
|
|
|
|
engine.eventManager.Subscribe(event.BlockUnknownPeers, engine.queue)
|
|
|
@ -159,6 +160,11 @@ func (e *engine) eventHandler() {
|
|
|
|
go e.peerWithTokenServer(ev.Data[event.GroupServer], ev.Data[event.ServerTokenOnion], ev.Data[event.ServerTokenY], signature)
|
|
|
|
go e.peerWithTokenServer(ev.Data[event.GroupServer], ev.Data[event.ServerTokenOnion], ev.Data[event.ServerTokenY], signature)
|
|
|
|
case event.LeaveServer:
|
|
|
|
case event.LeaveServer:
|
|
|
|
e.leaveServer(ev.Data[event.GroupServer])
|
|
|
|
e.leaveServer(ev.Data[event.GroupServer])
|
|
|
|
|
|
|
|
case event.DeleteContact:
|
|
|
|
|
|
|
|
onion := ev.Data[event.RemotePeer]
|
|
|
|
|
|
|
|
// We remove this peer from out blocklist which will prevent them from contacting us if we have "block unknown peers" turned on.
|
|
|
|
|
|
|
|
e.authorizations.Delete(ev.Data[event.RemotePeer])
|
|
|
|
|
|
|
|
e.deleteConnection(onion)
|
|
|
|
case event.SendMessageToGroup:
|
|
|
|
case event.SendMessageToGroup:
|
|
|
|
ciphertext, _ := base64.StdEncoding.DecodeString(ev.Data[event.Ciphertext])
|
|
|
|
ciphertext, _ := base64.StdEncoding.DecodeString(ev.Data[event.Ciphertext])
|
|
|
|
signature, _ := base64.StdEncoding.DecodeString(ev.Data[event.Signature])
|
|
|
|
signature, _ := base64.StdEncoding.DecodeString(ev.Data[event.Signature])
|
|
|
@ -525,6 +531,13 @@ func (e *engine) sendRetValToPeer(eventID, onion, val, existsStr string) error {
|
|
|
|
return e.sendPeerMessage(onion, pmodel.PeerMessage{ID: eventID, Context: event.ContextRetVal, Data: message})
|
|
|
|
return e.sendPeerMessage(onion, pmodel.PeerMessage{ID: eventID, Context: event.ContextRetVal, Data: message})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func (e *engine) deleteConnection(id string) {
|
|
|
|
|
|
|
|
conn, err := e.service.GetConnection(id)
|
|
|
|
|
|
|
|
if err == nil {
|
|
|
|
|
|
|
|
conn.Close()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// receiveGroupMessage is a callback function that processes GroupMessages from a given server
|
|
|
|
// receiveGroupMessage is a callback function that processes GroupMessages from a given server
|
|
|
|
func (e *engine) receiveGroupMessage(server string, gm *groups.EncryptedGroupMessage) {
|
|
|
|
func (e *engine) receiveGroupMessage(server string, gm *groups.EncryptedGroupMessage) {
|
|
|
|
// Publish Event so that a Profile Engine can deal with it.
|
|
|
|
// Publish Event so that a Profile Engine can deal with it.
|
|
|
|