diff --git a/model/message.go b/model/message.go index fc7f454..fca564c 100644 --- a/model/message.go +++ b/model/message.go @@ -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 { @@ -112,7 +111,7 @@ func (t *Timeline) GetMessagesByHash(contentHash string) ([]LocallyIndexedMessag t.init() if idxs, exists := t.hashCache[contentHash]; exists { var messages []LocallyIndexedMessage - for _,idx := range idxs { + for _, idx := range idxs { messages = append(messages, LocallyIndexedMessage{LocalIndex: idx, Message: t.Messages[idx]}) } return messages, nil diff --git a/model/message_test.go b/model/message_test.go index b074328..be2859e 100644 --- a/model/message_test.go +++ b/model/message_test.go @@ -106,7 +106,7 @@ func TestTranscriptConsistency(t *testing.T) { t.Logf("Looking up %v ", hash) - for key,msgs := range timeline.hashCache { + for key, msgs := range timeline.hashCache { t.Logf("%v %v", key, msgs) } diff --git a/peer/cwtch_peer.go b/peer/cwtch_peer.go index 6e7a214..a4867e4 100644 --- a/peer/cwtch_peer.go +++ b/peer/cwtch_peer.go @@ -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) - event.EventID = strconv.Itoa(contact.Timeline.Len()) - cp.Profile.AddSentMessageToContactTimeline(onion, message, time.Now(), event.EventID) - cp.mutex.Unlock() + 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) + } + // Regardless we publish the send message to peer event for the protocol engine to execute on... cp.eventBus.Publish(event) - return event.EventID }