mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-06-29 12:49:53 +00:00
core: return remote controller port to UI (#3430)
This commit is contained in:
parent
cec0fe2702
commit
324f614e00
4 changed files with 12 additions and 9 deletions
|
@ -104,6 +104,7 @@ import qualified Simplex.Messaging.TMap as TM
|
||||||
import Simplex.Messaging.Transport.Client (defaultSocksProxy)
|
import Simplex.Messaging.Transport.Client (defaultSocksProxy)
|
||||||
import Simplex.Messaging.Util
|
import Simplex.Messaging.Util
|
||||||
import Simplex.Messaging.Version
|
import Simplex.Messaging.Version
|
||||||
|
import Simplex.RemoteControl.Invitation (RCSignedInvitation (..), RCInvitation (..))
|
||||||
import System.Exit (ExitCode, exitFailure, exitSuccess)
|
import System.Exit (ExitCode, exitFailure, exitSuccess)
|
||||||
import System.FilePath (takeFileName, (</>))
|
import System.FilePath (takeFileName, (</>))
|
||||||
import System.IO (Handle, IOMode (..), SeekMode (..), hFlush, stdout)
|
import System.IO (Handle, IOMode (..), SeekMode (..), hFlush, stdout)
|
||||||
|
@ -1966,8 +1967,8 @@ processChatCommand = \case
|
||||||
ListRemoteHosts -> withUser_ $ CRRemoteHostList <$> listRemoteHosts
|
ListRemoteHosts -> withUser_ $ CRRemoteHostList <$> listRemoteHosts
|
||||||
SwitchRemoteHost rh_ -> withUser_ $ CRCurrentRemoteHost <$> switchRemoteHost rh_
|
SwitchRemoteHost rh_ -> withUser_ $ CRCurrentRemoteHost <$> switchRemoteHost rh_
|
||||||
StartRemoteHost rh_ -> withUser_ $ do
|
StartRemoteHost rh_ -> withUser_ $ do
|
||||||
(remoteHost_, inv) <- startRemoteHost rh_
|
(remoteHost_, inv@RCSignedInvitation {invitation = RCInvitation {port}}) <- startRemoteHost rh_
|
||||||
pure CRRemoteHostStarted {remoteHost_, invitation = decodeLatin1 $ strEncode inv}
|
pure CRRemoteHostStarted {remoteHost_, invitation = decodeLatin1 $ strEncode inv, ctrlPort = show port}
|
||||||
StopRemoteHost rh_ -> withUser_ $ closeRemoteHost rh_ >> ok_
|
StopRemoteHost rh_ -> withUser_ $ closeRemoteHost rh_ >> ok_
|
||||||
DeleteRemoteHost rh -> withUser_ $ deleteRemoteHost rh >> ok_
|
DeleteRemoteHost rh -> withUser_ $ deleteRemoteHost rh >> ok_
|
||||||
StoreRemoteFile rh encrypted_ localPath -> withUser_ $ CRRemoteFileStored rh <$> storeRemoteFile rh encrypted_ localPath
|
StoreRemoteFile rh encrypted_ localPath -> withUser_ $ CRRemoteFileStored rh <$> storeRemoteFile rh encrypted_ localPath
|
||||||
|
|
|
@ -657,7 +657,7 @@ data ChatResponse
|
||||||
| CRContactConnectionDeleted {user :: User, connection :: PendingContactConnection}
|
| CRContactConnectionDeleted {user :: User, connection :: PendingContactConnection}
|
||||||
| CRRemoteHostList {remoteHosts :: [RemoteHostInfo]}
|
| CRRemoteHostList {remoteHosts :: [RemoteHostInfo]}
|
||||||
| CRCurrentRemoteHost {remoteHost_ :: Maybe RemoteHostInfo}
|
| CRCurrentRemoteHost {remoteHost_ :: Maybe RemoteHostInfo}
|
||||||
| CRRemoteHostStarted {remoteHost_ :: Maybe RemoteHostInfo, invitation :: Text}
|
| CRRemoteHostStarted {remoteHost_ :: Maybe RemoteHostInfo, invitation :: Text, ctrlPort :: String}
|
||||||
| CRRemoteHostSessionCode {remoteHost_ :: Maybe RemoteHostInfo, sessionCode :: Text}
|
| CRRemoteHostSessionCode {remoteHost_ :: Maybe RemoteHostInfo, sessionCode :: Text}
|
||||||
| CRNewRemoteHost {remoteHost :: RemoteHostInfo}
|
| CRNewRemoteHost {remoteHost :: RemoteHostInfo}
|
||||||
| CRRemoteHostConnected {remoteHost :: RemoteHostInfo}
|
| CRRemoteHostConnected {remoteHost :: RemoteHostInfo}
|
||||||
|
|
|
@ -285,11 +285,13 @@ responseToView hu@(currentRH, user_) ChatConfig {logLevel, showReactions, showRe
|
||||||
rhi_
|
rhi_
|
||||||
]
|
]
|
||||||
CRRemoteHostList hs -> viewRemoteHosts hs
|
CRRemoteHostList hs -> viewRemoteHosts hs
|
||||||
CRRemoteHostStarted {remoteHost_, invitation} ->
|
CRRemoteHostStarted {remoteHost_, invitation, ctrlPort} ->
|
||||||
[ maybe "new remote host started" (\RemoteHostInfo {remoteHostId = rhId} -> "remote host " <> sShow rhId <> " started") remoteHost_,
|
[ plain $ maybe ("new remote host" <> started) (\RemoteHostInfo {remoteHostId = rhId} -> "remote host " <> show rhId <> started) remoteHost_,
|
||||||
"Remote session invitation:",
|
"Remote session invitation:",
|
||||||
plain invitation
|
plain invitation
|
||||||
]
|
]
|
||||||
|
where
|
||||||
|
started = " started on port " <> ctrlPort
|
||||||
CRRemoteHostSessionCode {remoteHost_, sessionCode} ->
|
CRRemoteHostSessionCode {remoteHost_, sessionCode} ->
|
||||||
[ maybe "new remote host connecting" (\RemoteHostInfo {remoteHostId = rhId} -> "remote host " <> sShow rhId <> " connecting") remoteHost_,
|
[ maybe "new remote host connecting" (\RemoteHostInfo {remoteHostId = rhId} -> "remote host " <> sShow rhId <> " connecting") remoteHost_,
|
||||||
"Compare session code with host:",
|
"Compare session code with host:",
|
||||||
|
|
|
@ -116,7 +116,7 @@ remoteHandshakeRejectTest = testChat3 aliceProfile aliceDesktopProfile bobProfil
|
||||||
mobileBob ##> "/set device name MobileBob"
|
mobileBob ##> "/set device name MobileBob"
|
||||||
mobileBob <## "ok"
|
mobileBob <## "ok"
|
||||||
desktop ##> "/start remote host 1"
|
desktop ##> "/start remote host 1"
|
||||||
desktop <## "remote host 1 started"
|
desktop <##. "remote host 1 started on port "
|
||||||
desktop <## "Remote session invitation:"
|
desktop <## "Remote session invitation:"
|
||||||
inv <- getTermLine desktop
|
inv <- getTermLine desktop
|
||||||
mobileBob ##> ("/connect remote ctrl " <> inv)
|
mobileBob ##> ("/connect remote ctrl " <> inv)
|
||||||
|
@ -425,7 +425,7 @@ startRemote mobile desktop = do
|
||||||
mobile ##> "/set device name Mobile"
|
mobile ##> "/set device name Mobile"
|
||||||
mobile <## "ok"
|
mobile <## "ok"
|
||||||
desktop ##> "/start remote host new"
|
desktop ##> "/start remote host new"
|
||||||
desktop <## "new remote host started"
|
desktop <##. "new remote host started on port "
|
||||||
desktop <## "Remote session invitation:"
|
desktop <## "Remote session invitation:"
|
||||||
inv <- getTermLine desktop
|
inv <- getTermLine desktop
|
||||||
mobile ##> ("/connect remote ctrl " <> inv)
|
mobile ##> ("/connect remote ctrl " <> inv)
|
||||||
|
@ -440,7 +440,7 @@ startRemote mobile desktop = do
|
||||||
startRemoteStored :: TestCC -> TestCC -> IO ()
|
startRemoteStored :: TestCC -> TestCC -> IO ()
|
||||||
startRemoteStored mobile desktop = do
|
startRemoteStored mobile desktop = do
|
||||||
desktop ##> "/start remote host 1"
|
desktop ##> "/start remote host 1"
|
||||||
desktop <## "remote host 1 started"
|
desktop <##. "remote host 1 started on port "
|
||||||
desktop <## "Remote session invitation:"
|
desktop <## "Remote session invitation:"
|
||||||
inv <- getTermLine desktop
|
inv <- getTermLine desktop
|
||||||
mobile ##> ("/connect remote ctrl " <> inv)
|
mobile ##> ("/connect remote ctrl " <> inv)
|
||||||
|
@ -454,7 +454,7 @@ startRemoteStored mobile desktop = do
|
||||||
startRemoteDiscover :: TestCC -> TestCC -> IO ()
|
startRemoteDiscover :: TestCC -> TestCC -> IO ()
|
||||||
startRemoteDiscover mobile desktop = do
|
startRemoteDiscover mobile desktop = do
|
||||||
desktop ##> "/start remote host 1 multicast=on"
|
desktop ##> "/start remote host 1 multicast=on"
|
||||||
desktop <## "remote host 1 started"
|
desktop <##. "remote host 1 started on port "
|
||||||
desktop <## "Remote session invitation:"
|
desktop <## "Remote session invitation:"
|
||||||
_inv <- getTermLine desktop -- will use multicast instead
|
_inv <- getTermLine desktop -- will use multicast instead
|
||||||
mobile ##> "/find remote ctrl"
|
mobile ##> "/find remote ctrl"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue