From 7ed1741d378ea3987f471f3b1a64c3d2ba9fc0b1 Mon Sep 17 00:00:00 2001 From: benjamin <ben@elixxir.io> Date: Wed, 5 Oct 2022 13:31:54 -0700 Subject: [PATCH] fixed the random message id creation --- channels/sendTracker.go | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/channels/sendTracker.go b/channels/sendTracker.go index 1742d52ba..bd5d70160 100644 --- a/channels/sendTracker.go +++ b/channels/sendTracker.go @@ -205,26 +205,25 @@ func (st *sendTracker) denotePendingSend(channelID *id.ID, // approximate the lag due to round submission ts := netTime.Now().Add(oneSecond) - // submit the message to the UI - uuid, err := st.trigger(channelID, umi, ts, receptionID.EphemeralIdentity{}, - rounds.Round{}, Unsent) - if err != nil { - return 0, err - } - // create a random message id so there will not be collisions in a database // that requires a unique message ID stream := st.rngSrc.GetStream() - randMid := cryptoChannel.MessageID{} - num, err := stream.Read(randMid[:]) - if num != len(randMid[:]) || err != nil { + num, err := stream.Read(umi.messageID[:]) + if num != len(umi.messageID[:]) || err != nil { jww.FATAL.Panicf("failed to get a random message ID, read "+ "len: %d, err: %+v", num, err) } stream.Close() + // submit the message to the UI + uuid, err := st.trigger(channelID, umi, ts, receptionID.EphemeralIdentity{}, + rounds.Round{}, Unsent) + if err != nil { + return 0, err + } + // track the message on disk - st.handleDenoteSend(uuid, channelID, randMid, + st.handleDenoteSend(uuid, channelID, umi.messageID, rounds.Round{}) return uuid, nil } @@ -237,15 +236,6 @@ func (st *sendTracker) denotePendingAdminSend(channelID *id.ID, // approximate the lag due to round submission ts := netTime.Now().Add(oneSecond) - // submit the message to the UI - uuid, err := st.adminTrigger(channelID, cm, ts, cryptoChannel.MessageID{}, - receptionID.EphemeralIdentity{}, - rounds.Round{}, Unsent) - - if err != nil { - return 0, err - } - // create a random message id so there will not be collisions in a database // that requires a unique message ID stream := st.rngSrc.GetStream() @@ -257,6 +247,15 @@ func (st *sendTracker) denotePendingAdminSend(channelID *id.ID, } stream.Close() + // submit the message to the UI + uuid, err := st.adminTrigger(channelID, cm, ts, randMid, + receptionID.EphemeralIdentity{}, + rounds.Round{}, Unsent) + + if err != nil { + return 0, err + } + // track the message on disk st.handleDenoteSend(uuid, channelID, randMid, rounds.Round{}) -- GitLab