From a5e9afa25543484262dc4c029cecd9857f891d31 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Tue, 9 Jun 2026 19:53:39 +0400 Subject: [PATCH] wip --- src/Simplex/Chat/Library/Subscriber.hs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index b38f119ed3..e94b10045c 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -1311,13 +1311,11 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = r n'' = Just (ci, CIRcvDecryptionError mde n'') mdeUpdatedCI _ _ = Nothing - -- gInfo_ is Just only for the roster blob (no chat item) and selects roster cancel/completion; - -- Nothing for every normal file. Inner ack removed: the outer per-MSG withAckMessage is the sole ack. receiveFileChunk :: Maybe GroupInfo -> RcvFileTransfer -> Maybe Connection -> MsgMeta -> FileChunk -> CM () - receiveFileChunk gInfo_ ft@RcvFileTransfer {fileId, chunkSize} conn_ MsgMeta {recipient = (msgId, _), integrity} = \case - FileChunkCancel -> case gInfo_ of - Just gInfo -> cleanupGroupRosterFile user gInfo - Nothing -> + receiveFileChunk gInfo_ ft@RcvFileTransfer {fileId, fileType, chunkSize} conn_ MsgMeta {recipient = (msgId, _), integrity} = \case + FileChunkCancel -> case fileType of + FTRoster -> forM_ gInfo_ $ cleanupGroupRosterFile user + FTNormal -> unless (rcvFileCompleteOrCancelled ft) $ do cancelRcvFileTransfer user ft ci <- withStore $ \db -> getChatItemByFileId db cxt user fileId @@ -1338,9 +1336,9 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage = then badRcvFileChunk ft "incorrect chunk size" else do appendFileChunk ft chunkNo chunk True - case gInfo_ of - Just gInfo -> rosterCompletion gInfo ft - Nothing -> do + case fileType of + FTRoster -> forM_ gInfo_ $ \gInfo -> rosterCompletion gInfo ft + FTNormal -> do ci <- withStore $ \db -> do liftIO $ do updateRcvFileStatus db fileId FSComplete