Skip to content

Commit bbe1c71

Browse files
authored
xrcp: treat any 127.x.x.x IP address as local (#1682)
1 parent 538dcb6 commit bbe1c71

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/Simplex/RemoteControl/Discovery.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import Control.Logger.Simple
1414
import Control.Monad
1515
import Data.ByteString (ByteString)
1616
import Data.Default (def)
17-
import Data.List (delete, find)
17+
import Data.List (delete, find, partition)
1818
import Data.Maybe (mapMaybe)
1919
import Data.String (IsString)
2020
import qualified Data.Text as T
@@ -53,11 +53,11 @@ getLocalAddress preferred_ =
5353
ok -> Just RCCtrlAddress {address = THIPv4 ok, interface = T.pack name}
5454

5555
mkLastLocalHost :: [RCCtrlAddress] -> [RCCtrlAddress]
56-
mkLastLocalHost addrs = case find localHost addrs of
57-
Nothing -> addrs
58-
Just lh -> delete lh addrs <> [lh]
56+
mkLastLocalHost addrs = other <> local
5957
where
60-
localHost RCCtrlAddress {address = a} = a == THIPv4 (127, 0, 0, 1)
58+
(local, other) = partition localHost addrs
59+
localHost RCCtrlAddress {address = THIPv4 (127, _, _, _)} = True
60+
localHost _ = False
6161

6262
preferAddress :: RCCtrlAddress -> [RCCtrlAddress] -> [RCCtrlAddress]
6363
preferAddress RCCtrlAddress {address, interface} addrs =

tests/RemoteControl.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import AgentTests.FunctionalAPITests (runRight)
99
import Control.Logger.Simple
1010
import Crypto.Random (ChaChaDRG)
1111
import qualified Data.Aeson as J
12-
import Data.ByteString.Lazy.Char8 as LB
12+
import qualified Data.ByteString.Lazy.Char8 as LB
1313
import Data.List.NonEmpty (NonEmpty (..))
1414
import qualified Simplex.Messaging.Crypto as C
1515
import Simplex.Messaging.Encoding.String (StrEncoding (..))

0 commit comments

Comments
 (0)