diff --git a/bots/src/API/Docs/Events.hs b/bots/src/API/Docs/Events.hs index 1dbf484579..4a49551a54 100644 --- a/bots/src/API/Docs/Events.hs +++ b/bots/src/API/Docs/Events.hs @@ -180,7 +180,7 @@ undocumentedEvents = "CEvtGroupMemberSwitch", "CEvtHostConnected", "CEvtHostDisconnected", - "CEvtNetworkStatus", + "CEvtSubscriptionStatus", "CEvtNewRemoteHost", "CEvtNoMemberContactCreating", "CEvtNtfMessage", diff --git a/cabal.project b/cabal.project index ba4a7e15f2..26a9f9cb06 100644 --- a/cabal.project +++ b/cabal.project @@ -12,7 +12,7 @@ constraints: zip +disable-bzip2 +disable-zstd source-repository-package type: git location: https://github.com/simplex-chat/simplexmq.git - tag: 220456f0168ae25a7e8add018c36346854d8ae2b + tag: babb2a6742fccb6f0b017fac3509f09d03c55473 source-repository-package type: git diff --git a/scripts/nix/sha256map.nix b/scripts/nix/sha256map.nix index d37ec049f5..b6b99c8e95 100644 --- a/scripts/nix/sha256map.nix +++ b/scripts/nix/sha256map.nix @@ -1,5 +1,5 @@ { - "https://github.com/simplex-chat/simplexmq.git"."220456f0168ae25a7e8add018c36346854d8ae2b" = "0msdllbfjz702g8la9vcw4i5lz44w5iagwf3bnpim2g2jyw1ymsd"; + "https://github.com/simplex-chat/simplexmq.git"."babb2a6742fccb6f0b017fac3509f09d03c55473" = "0w3ja8v1y3xfc8xb0di815rk0sc6s67d32z7c0v129zvk7jrmpd7"; "https://github.com/simplex-chat/hs-socks.git"."a30cc7a79a08d8108316094f8f2f82a0c5e1ac51" = "0yasvnr7g91k76mjkamvzab2kvlb1g5pspjyjn2fr6v83swjhj38"; "https://github.com/simplex-chat/direct-sqlcipher.git"."f814ee68b16a9447fbb467ccc8f29bdd3546bfd9" = "1ql13f4kfwkbaq7nygkxgw84213i0zm7c1a8hwvramayxl38dq5d"; "https://github.com/simplex-chat/sqlcipher-simple.git"."a46bd361a19376c5211f1058908fc0ae6bf42446" = "1z0r78d8f0812kxbgsm735qf6xx8lvaz27k1a0b4a2m0sshpd5gl"; diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index 14678a993d..8003f66324 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -826,7 +826,7 @@ data ChatEvent | CEvtContactAnotherClient {user :: User, contact :: Contact} | CEvtConnectionsDiff {userIds :: DatabaseDiff AgentUserId, connIds :: DatabaseDiff AgentConnId} | CEvtSubscriptionEnd {user :: User, connectionEntity :: ConnectionEntity} - | CEvtNetworkStatus {server :: SMPServer, networkStatus :: NetworkStatus, connections :: [AgentConnId]} + | CEvtSubscriptionStatus {server :: SMPServer, subscriptionStatus :: SubscriptionStatus, connections :: [AgentConnId]} | CEvtHostConnected {protocol :: AProtocolType, transportHost :: TransportHost} | CEvtHostDisconnected {protocol :: AProtocolType, transportHost :: TransportHost} | CEvtReceivedGroupInvitation {user :: User, groupInfo :: GroupInfo, contact :: Contact, fromMemberRole :: GroupMemberRole, memberRole :: GroupMemberRole} @@ -906,7 +906,7 @@ allowRemoteEvent = \case logEventToFile :: ChatEvent -> Bool logEventToFile = \case - CEvtNetworkStatus {} -> True + CEvtSubscriptionStatus {} -> True CEvtHostConnected {} -> True CEvtHostDisconnected {} -> True CEvtConnectionDisabled {} -> True diff --git a/src/Simplex/Chat/Library/Subscriber.hs b/src/Simplex/Chat/Library/Subscriber.hs index 63f636a0d2..75eb208962 100644 --- a/src/Simplex/Chat/Library/Subscriber.hs +++ b/src/Simplex/Chat/Library/Subscriber.hs @@ -131,16 +131,16 @@ processAgentMessageNoConn :: AEvent 'AENone -> CM () processAgentMessageNoConn = \case CONNECT p h -> hostEvent $ CEvtHostConnected p h DISCONNECT p h -> hostEvent $ CEvtHostDisconnected p h - DOWN srv conns -> serverEvent srv NSDisconnected conns - UP srv conns -> serverEvent srv NSConnected conns + DOWN srv conns -> serverEvent srv SSPending conns + UP srv conns -> serverEvent srv SSActive conns SUSPENDED -> toView CEvtChatSuspended DEL_USER agentUserId -> toView $ CEvtAgentUserDeleted agentUserId ERRS cErrs -> errsEvent $ L.toList cErrs where hostEvent :: ChatEvent -> CM () hostEvent = whenM (asks $ hostEvents . config) . toView - serverEvent :: SMPServer -> NetworkStatus -> [ConnId] -> CM () - serverEvent srv nsStatus conns = toView $ CEvtNetworkStatus srv nsStatus $ map AgentConnId conns + serverEvent :: SMPServer -> SubscriptionStatus -> [ConnId] -> CM () + serverEvent srv nsStatus conns = toView $ CEvtSubscriptionStatus srv nsStatus $ map AgentConnId conns errsEvent :: [(ConnId, AgentErrorType)] -> CM () errsEvent = toView . CEvtChatErrors . map (\(cId, e) -> ChatErrorAgent e (AgentConnId cId) Nothing) diff --git a/src/Simplex/Chat/Types.hs b/src/Simplex/Chat/Types.hs index 8a25ef18e1..318f3955fa 100644 --- a/src/Simplex/Chat/Types.hs +++ b/src/Simplex/Chat/Types.hs @@ -1789,20 +1789,6 @@ serializeIntroStatus = \case GMIntroToConnected -> "to-con" GMIntroConnected -> "con" -data NetworkStatus - = NSUnknown - | NSConnected - | NSDisconnected - | NSError {connectionError :: String} - deriving (Eq, Ord, Show) - -netStatusStr :: NetworkStatus -> String -netStatusStr = \case - NSUnknown -> "unknown" - NSConnected -> "subscribed" - NSDisconnected -> "disconnected" - NSError e -> "error: " <> e - type CommandId = Int64 aCorrId :: CommandId -> ACorrId @@ -1992,8 +1978,6 @@ $(JQ.deriveJSON defaultJSON ''GroupMemberSettings) $(JQ.deriveJSON defaultJSON ''SecurityCode) -$(JQ.deriveJSON (sumTypeJSON $ dropPrefix "NS") ''NetworkStatus) - $(JQ.deriveJSON defaultJSON ''Connection) $(JQ.deriveJSON defaultJSON ''PendingContactConnection) diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index 2253196be0..bbccd514b4 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -456,7 +456,7 @@ chatEventToView hu ChatConfig {logLevel, showReactions, showReceipts, testView} CEvtSubscriptionEnd u acEntity -> let Connection {connId} = entityConnection acEntity in ttyUser u [sShow connId <> ": END"] - CEvtNetworkStatus srv status conns -> [plain $ netStatusStr status <> " " <> show (length conns) <> " connections on server " <> showSMPServer srv] + CEvtSubscriptionStatus srv status conns -> [plain $ subStatusStr status <> " " <> show (length conns) <> " connections on server " <> showSMPServer srv] CEvtReceivedGroupInvitation {user = u, groupInfo = g, contact = c, memberRole = r} -> ttyUser u $ viewReceivedGroupInvitation g c r CEvtUserJoinedGroup u g _ -> ttyUser u $ viewUserJoinedGroup g CEvtJoinedGroupMember u g m -> ttyUser u $ viewJoinedGroupMember g m @@ -1457,6 +1457,13 @@ viewConnDiffIds userDiff connDiff where showIds = plain . T.intercalate ", " . map (tshow . unwrapId) +subStatusStr :: SubscriptionStatus -> String +subStatusStr = \case + SSActive -> "subscribed" + SSPending -> "disconnected" + SSRemoved e -> "removed: " <> e + SSNoSub -> "no subscription" + viewUserServers :: UserOperatorServers -> [StyledString] viewUserServers (UserOperatorServers _ [] []) = [] viewUserServers UserOperatorServers {operator, smpServers, xftpServers} =