From 5748ead9266a81b2535449c987582385e1506664 Mon Sep 17 00:00:00 2001 From: ycc Date: Wed, 4 Mar 2026 11:58:14 +0100 Subject: [PATCH] received timestamp added to bd --- client/helpers/bgPollHelper.go | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/client/helpers/bgPollHelper.go b/client/helpers/bgPollHelper.go index 931016f..92f20ad 100644 --- a/client/helpers/bgPollHelper.go +++ b/client/helpers/bgPollHelper.go @@ -173,6 +173,14 @@ func ConsumeInboxFile(messageFilename string) ([]string, []string, string, error // user message messagesOverview = append(messagesOverview, peer.Name+" > "+string(usermsg.Data)) + + // stamp the received time before storing + receivedAt := time.Now().UTC().Unix() + if usermsg.Status == nil { + usermsg.Status = &meowlib.ConversationStatus{} + } + usermsg.Status.Received = uint64(receivedAt) + // add message to storage err = peer.StoreMessage(usermsg, filenames) if err != nil { @@ -180,13 +188,13 @@ func ConsumeInboxFile(messageFilename string) ([]string, []string, string, error } filenames = []string{} - // Send delivery ack if the peer requested it - if peer.SendDeliveryAck && usermsg.Status != nil && usermsg.Status.Uuid != "" { - storagePath := filepath.Join(client.GetConfig().StoragePath, identity.Uuid) - if ackErr := sendDeliveryAck(storagePath, peer, usermsg.Status.Uuid); ackErr != nil { - logger.Warn().Err(ackErr).Str("peer", peer.Uid).Msg("ConsumeInboxFile: sendDeliveryAck") + // Send delivery ack if the peer requested it + if peer.SendDeliveryAck && usermsg.Status.Uuid != "" { + storagePath := filepath.Join(client.GetConfig().StoragePath, identity.Uuid) + if ackErr := sendDeliveryAck(storagePath, peer, usermsg.Status.Uuid, receivedAt); ackErr != nil { + logger.Warn().Err(ackErr).Str("peer", peer.Uid).Msg("ConsumeInboxFile: sendDeliveryAck") + } } - } } } @@ -251,8 +259,8 @@ func LongPollAllServerJobs(storage_path string, jobs []client.RequestsJob, timeo // sendDeliveryAck builds a delivery acknowledgment for messageUuid and enqueues // it for sending to the peer's contact pull servers. -func sendDeliveryAck(storagePath string, peer *client.Peer, messageUuid string) error { - packedMsg, _, err := BuildReceivedMessage(messageUuid, peer.Uid, time.Now().UTC().Unix()) +func sendDeliveryAck(storagePath string, peer *client.Peer, messageUuid string, receivedAt int64) error { + packedMsg, _, err := BuildReceivedMessage(messageUuid, peer.Uid, receivedAt) if err != nil { return fmt.Errorf("sendDeliveryAck: BuildReceivedMessage: %w", err) }