From d0b0752fe5e0099896c35d0e86a64d93246d4dce Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Thu, 20 Jan 2022 00:48:31 -0500 Subject: [PATCH] add contenthash to NewMessageFromPeer and NewMessageFromGroup --- event/common.go | 1 + peer/cwtch_peer.go | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/event/common.go b/event/common.go index 8cae35a..9a0430f 100644 --- a/event/common.go +++ b/event/common.go @@ -261,6 +261,7 @@ const ( EventID = Field("EventID") EventContext = Field("EventContext") Index = Field("Index") + ContentHash = Field("ContentHash") // Handle denotes a contact handle of any type. Handle = Field("Handle") diff --git a/peer/cwtch_peer.go b/peer/cwtch_peer.go index 2450df4..3263436 100644 --- a/peer/cwtch_peer.go +++ b/peer/cwtch_peer.go @@ -1062,6 +1062,7 @@ func (cp *cwtchPeer) eventHandler() { // Republish as NewMessageFromPeer ev.EventType = event.NewMessageFromPeer ev.Data[event.Index] = strconv.Itoa(id) + ev.Data[event.ContentHash] = model.CalculateContentHash(ev.Data[event.RemotePeer], ev.Data[event.Data]) cp.eventBus.Publish(ev) } case event.PeerAcknowledgement: @@ -1252,9 +1253,10 @@ func (cp *cwtchPeer) attemptInsertOrAcknowledgeLegacyGroupConversation(conversat } } else { cp.mutex.Lock() - id, err := cp.storage.InsertMessage(conversationID, 0, dm.Text, model.Attributes{constants.AttrAck: constants.True, "PreviousSignature": base64.StdEncoding.EncodeToString(dm.PreviousMessageSig), constants.AttrAuthor: dm.Onion, constants.AttrSentTimestamp: time.Unix(int64(dm.Timestamp), 0).Format(time.RFC3339Nano)}, signature, model.CalculateContentHash(dm.Onion, dm.Text)) + contenthash := model.CalculateContentHash(dm.Onion, dm.Text) + id, err := cp.storage.InsertMessage(conversationID, 0, dm.Text, model.Attributes{constants.AttrAck: constants.True, "PreviousSignature": base64.StdEncoding.EncodeToString(dm.PreviousMessageSig), constants.AttrAuthor: dm.Onion, constants.AttrSentTimestamp: time.Unix(int64(dm.Timestamp), 0).Format(time.RFC3339Nano)}, signature, contenthash) if err == nil { - cp.eventBus.Publish(event.NewEvent(event.NewMessageFromGroup, map[event.Field]string{event.ConversationID: strconv.Itoa(conversationID), event.TimestampSent: time.Unix(int64(dm.Timestamp), 0).Format(time.RFC3339Nano), event.RemotePeer: dm.Onion, event.Index: strconv.Itoa(id), event.Data: dm.Text})) + cp.eventBus.Publish(event.NewEvent(event.NewMessageFromGroup, map[event.Field]string{event.ConversationID: strconv.Itoa(conversationID), event.TimestampSent: time.Unix(int64(dm.Timestamp), 0).Format(time.RFC3339Nano), event.RemotePeer: dm.Onion, event.Index: strconv.Itoa(id), event.Data: dm.Text, event.ContentHash: contenthash})) } cp.mutex.Unlock() return err