From e4fdf64b2c8a44553a7a3b203308c4114d36e063 Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Thu, 9 Jul 2026 12:56:29 +0400 Subject: [PATCH] wip --- src/Simplex/Chat/Library/Subscriber.hs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index 3e6bc91abd..bc067815f9 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -349,27 +349,24 @@ processAgentMsgRcvFile _corrId aFileId msg = do Just targetPath -> do fsTargetPath <- lift $ toFSFilePath targetPath renameFile xftpPath fsTargetPath - ci_ <- withStore $ \db -> lookupChatItemByFileId db cxt user fileId - let signedDigest = case (ci_, ft) of - (Just (AChatItem _ _ _ ChatItem {meta = CIMeta {msgSigned = Just MSSVerified}}), RcvFileTransfer {fileInvitation = FileInvitation {fileDigest = Just d}, cryptoArgs = cfArgs}) -> Just (d, cfArgs) - _ -> Nothing - badDigest <- case signedDigest of - Just (expected, cfArgs) -> (/= expected) <$> cryptoFileDigest (CryptoFile fsTargetPath cfArgs) - Nothing -> pure False + badDigest <- case ft of + RcvFileTransfer {fileInvitation = FileInvitation {fileDigest = Just d}, cryptoArgs} -> + (/= d) <$> cryptoFileDigest (CryptoFile fsTargetPath cryptoArgs) + _ -> pure False if badDigest then do - aci_ <- resetRcvCIFileStatus user fileId (CIFSRcvError $ FileErrOther "file signature") + aci_ <- resetRcvCIFileStatus user fileId (CIFSRcvError $ FileErrOther "file digest") forM_ aci_ cleanupACIFile agentXFTPDeleteRcvFile aFileId fileId forM_ aci_ $ \aci -> toView $ CEvtChatItemUpdated user aci else do - ci_' <- withStore $ \db -> do + ci_ <- withStore $ \db -> do liftIO $ do updateRcvFileStatus db fileId FSComplete updateCIFileStatus db user fileId CIFSRcvComplete lookupChatItemByFileId db cxt user fileId agentXFTPDeleteRcvFile aFileId fileId - toView $ maybe (CEvtRcvStandaloneFileComplete user fsTargetPath ft) (CEvtRcvFileComplete user) ci_' + toView $ maybe (CEvtRcvStandaloneFileComplete user fsTargetPath ft) (CEvtRcvFileComplete user) ci_ RFWARN e -> do ci <- withStore $ \db -> do liftIO $ updateCIFileStatus db user fileId (CIFSRcvWarning $ agentFileError e)