diff --git a/dm/interfaces.go b/dm/interfaces.go index 7f8d5e2dd808792bcdcf219dbc91459348350d01..deb6de98c1a469532e60f852d621739132096c97 100644 --- a/dm/interfaces.go +++ b/dm/interfaces.go @@ -127,7 +127,7 @@ type EventModel interface { Receive(messageID cryptoMessage.ID, nickname string, text []byte, partnerPubKey, senderPubKey ed25519.PublicKey, - dmToken uint32, + partnerToken uint32, codeset uint8, timestamp time.Time, round rounds.Round, mType MessageType, status Status) uint64 @@ -148,7 +148,7 @@ type EventModel interface { ReceiveText(messageID cryptoMessage.ID, nickname, text string, partnerPubKey, senderPubKey ed25519.PublicKey, - dmToken uint32, + partnerToken uint32, codeset uint8, timestamp time.Time, round rounds.Round, status Status) uint64 @@ -173,7 +173,7 @@ type EventModel interface { ReceiveReply(messageID cryptoMessage.ID, reactionTo cryptoMessage.ID, nickname, text string, partnerPubKey, senderPubKey ed25519.PublicKey, - dmToken uint32, codeset uint8, + partnerToken uint32, codeset uint8, timestamp time.Time, round rounds.Round, status Status) uint64 @@ -198,7 +198,7 @@ type EventModel interface { ReceiveReaction(messageID cryptoMessage.ID, reactionTo cryptoMessage.ID, nickname, reaction string, partnerPubKey, senderPubKey ed25519.PublicKey, - dmToken uint32, codeset uint8, + partnerToken uint32, codeset uint8, timestamp time.Time, round rounds.Round, status Status) uint64 diff --git a/dm/receiver.go b/dm/receiver.go index be677a00fe0abfc3f36f0aa9d346f73762cd8c06..f0d8189275d91b5c3c07fd547c170e7ee2d46e3d 100644 --- a/dm/receiver.go +++ b/dm/receiver.go @@ -117,12 +117,15 @@ func (dp *dmProcessor) Process(msg format.Message, return } + // partner Token is the sender Token + partnerToken := senderToken + // Process the receivedMessage. This is already in an instanced event; // no new thread is needed. // Note that in the non-self send case the partner key and sender // key are the same. This is how the UI differentiates between the two. uuid, err := dp.r.receiveMessage(msgID, messageType, directMsg.Nickname, - directMsg.Payload, senderToken, + directMsg.Payload, partnerToken, *pubSigningKey, *pubSigningKey, ts, receptionID, round, Received) if err != nil { @@ -153,7 +156,6 @@ func (sp *selfProcessor) Process(msg format.Message, return } senderPublicKey := sp.r.c.publicKey - senderToken := sp.r.c.myToken directMsg := &DirectMessage{} if err := proto.Unmarshal(payload, directMsg); err != nil { @@ -223,7 +225,7 @@ func (sp *selfProcessor) Process(msg format.Message, // Process the receivedMessage. This is already in an instanced event; // no new thread is needed. uuid, err := sp.r.receiveMessage(msgID, messageType, directMsg.Nickname, - directMsg.Payload, senderToken, + directMsg.Payload, partnerToken, *partnerPubKey, *pubSigningKey, ts, receptionID, round, Received) if err != nil { @@ -245,27 +247,27 @@ func (r *receiver) GetProcessor() *dmProcessor { // receiveMessage attempts to parse the message and calls the appropriate // receiver function. func (r *receiver) receiveMessage(msgID message.ID, messageType MessageType, - nick string, plaintext []byte, dmToken uint32, + nick string, plaintext []byte, partnerDMToken uint32, partnerPubKey, senderPubKey ed25519.PublicKey, ts time.Time, _ receptionID.EphemeralIdentity, round rounds.Round, status Status) (uint64, error) { switch messageType { case TextType: return r.receiveTextMessage(msgID, messageType, - nick, plaintext, dmToken, partnerPubKey, senderPubKey, - 0, ts, round, status) + nick, plaintext, partnerDMToken, partnerPubKey, + senderPubKey, 0, ts, round, status) case ReplyType: return r.receiveTextMessage(msgID, messageType, - nick, plaintext, dmToken, partnerPubKey, senderPubKey, - 0, ts, round, status) + nick, plaintext, partnerDMToken, partnerPubKey, + senderPubKey, 0, ts, round, status) case ReactionType: return r.receiveReaction(msgID, messageType, - nick, plaintext, dmToken, partnerPubKey, senderPubKey, - 0, ts, round, status) + nick, plaintext, partnerDMToken, partnerPubKey, + senderPubKey, 0, ts, round, status) default: return r.api.Receive(msgID, nick, plaintext, partnerPubKey, senderPubKey, - dmToken, 0, ts, round, + partnerDMToken, 0, ts, round, messageType, status), nil } }