diff --git a/src/Simplex/Messaging/Agent.hs b/src/Simplex/Messaging/Agent.hs index e899d6a12..623fcc1f1 100644 --- a/src/Simplex/Messaging/Agent.hs +++ b/src/Simplex/Messaging/Agent.hs @@ -75,6 +75,7 @@ module Simplex.Messaging.Agent setNtfServers, setNetworkConfig, getNetworkConfig, + reconnectAllServers, registerNtfToken, verifyNtfToken, checkNtfToken, @@ -316,13 +317,16 @@ setNetworkConfig :: MonadUnliftIO m => AgentClient -> NetworkConfig -> m () setNetworkConfig c cfg' = do cfg <- atomically $ do swapTVar (useNetworkConfig c) cfg' - liftIO . when (cfg /= cfg') $ do - closeProtocolServerClients c smpClients - closeProtocolServerClients c ntfClients + when (cfg /= cfg') $ reconnectAllServers c getNetworkConfig :: AgentErrorMonad m => AgentClient -> m NetworkConfig getNetworkConfig = readTVarIO . useNetworkConfig +reconnectAllServers :: MonadUnliftIO m => AgentClient -> m () +reconnectAllServers c = liftIO $ do + closeProtocolServerClients c smpClients + closeProtocolServerClients c ntfClients + -- | Register device notifications token registerNtfToken :: AgentErrorMonad m => AgentClient -> DeviceToken -> NotificationsMode -> m NtfTknStatus registerNtfToken c = withAgentEnv c .: registerNtfToken' c