diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 87709e38d1..fc948314a5 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -3303,13 +3303,13 @@ cancelSndFile user FileTransferMeta {fileId} fts = do forM_ fts $ \ft' -> cancelSndFileTransfer user ft' cancelSndFileTransfer :: ChatMonad m => User -> SndFileTransfer -> m () -cancelSndFileTransfer user ft@SndFileTransfer {connId, agentConnId = agentConnId@(AgentConnId acId), fileStatus} = +cancelSndFileTransfer user ft@SndFileTransfer {connId, agentConnId = agentConnId@(AgentConnId acId), fileStatus, fileInline} = unless (fileStatus == FSCancelled || fileStatus == FSComplete) $ do withStore' $ \db -> do updateSndFileStatus db ft FSCancelled deleteSndFileChunks db ft withAgent $ \a -> void (sendMessage a acId SMP.noMsgFlags $ smpEncode FileChunkCancel) `catchError` \_ -> pure () - deleteAgentConnectionAsync' user connId agentConnId + when (isNothing fileInline) $ deleteAgentConnectionAsync' user connId agentConnId closeFileHandle :: ChatMonad m => Int64 -> (ChatController -> TVar (Map Int64 Handle)) -> m () closeFileHandle fileId files = do diff --git a/src/Simplex/Chat/Migrations/M20221012_inline_files.hs b/src/Simplex/Chat/Migrations/M20221012_inline_files.hs index 51133d6b63..4b069f0882 100644 --- a/src/Simplex/Chat/Migrations/M20221012_inline_files.hs +++ b/src/Simplex/Chat/Migrations/M20221012_inline_files.hs @@ -10,10 +10,10 @@ m20221012_inline_files = [sql| DROP INDEX idx_messages_direct_shared_msg_id; -ALTER TABLE files ADD COLUMN file_inline TEXT; -ALTER TABLE rcv_files ADD COLUMN rcv_file_inline TEXT; -ALTER TABLE rcv_files ADD COLUMN file_inline TEXT; -ALTER TABLE snd_files ADD COLUMN file_inline TEXT; +ALTER TABLE files ADD COLUMN file_inline TEXT; -- based on offer, determined by file sender for both sides +ALTER TABLE rcv_files ADD COLUMN rcv_file_inline TEXT; -- actual mode when receiving file, determined when invitation is accepted +ALTER TABLE rcv_files ADD COLUMN file_inline TEXT; -- based on offer, determined when invitation is processed +ALTER TABLE snd_files ADD COLUMN file_inline TEXT; -- actual mode when sending file, determined when invitation is accepted ALTER TABLE snd_files ADD COLUMN last_inline_msg_delivery_id INTEGER; CREATE UNIQUE INDEX idx_snd_files_last_inline_msg_delivery_id ON snd_files(last_inline_msg_delivery_id);