BugFix: Crash when sending a message to a Peer who is not a Contact
This commit is contained in:
parent
67fbbd0fa0
commit
e099f1bf29
|
@ -28,7 +28,6 @@ type Timeline struct {
|
|||
hashCache map[string][]int
|
||||
}
|
||||
|
||||
|
||||
// LocallyIndexedMessage is a type wrapper around a Message and a TimeLine Index that is local to this
|
||||
// instance of the timeline.
|
||||
type LocallyIndexedMessage struct {
|
||||
|
|
|
@ -524,16 +524,19 @@ func (cp *cwtchPeer) SendMessageToGroupTracked(groupid string, message string) (
|
|||
}
|
||||
|
||||
func (cp *cwtchPeer) SendMessageToPeer(onion string, message string) string {
|
||||
event := event.NewEvent(event.SendMessageToPeer, map[event.Field]string{event.RemotePeer: onion, event.Data: message})
|
||||
|
||||
cp.mutex.Lock()
|
||||
contact, _ := cp.Profile.GetContact(onion)
|
||||
defer cp.mutex.Unlock()
|
||||
event := event.NewEvent(event.SendMessageToPeer, map[event.Field]string{event.RemotePeer: onion, event.Data: message})
|
||||
contact, exists := cp.Profile.GetContact(onion)
|
||||
|
||||
// If the contact exists replace the event id wih the index of this message in the contacts timeline...
|
||||
// Otherwise assume we don't log the message in the timeline...
|
||||
if exists {
|
||||
event.EventID = strconv.Itoa(contact.Timeline.Len())
|
||||
cp.Profile.AddSentMessageToContactTimeline(onion, message, time.Now(), event.EventID)
|
||||
cp.mutex.Unlock()
|
||||
|
||||
}
|
||||
// Regardless we publish the send message to peer event for the protocol engine to execute on...
|
||||
cp.eventBus.Publish(event)
|
||||
|
||||
return event.EventID
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue