xrcp: treat any 127.x.x.x IP address as local (#1682)

This commit is contained in:
Evgeny
2025-12-23 12:42:05 +00:00
committed by GitHub
parent 538dcb6a4c
commit bbe1c716e6
2 changed files with 6 additions and 6 deletions

View File

@@ -14,7 +14,7 @@ import Control.Logger.Simple
import Control.Monad
import Data.ByteString (ByteString)
import Data.Default (def)
import Data.List (delete, find)
import Data.List (delete, find, partition)
import Data.Maybe (mapMaybe)
import Data.String (IsString)
import qualified Data.Text as T
@@ -53,11 +53,11 @@ getLocalAddress preferred_ =
ok -> Just RCCtrlAddress {address = THIPv4 ok, interface = T.pack name}
mkLastLocalHost :: [RCCtrlAddress] -> [RCCtrlAddress]
mkLastLocalHost addrs = case find localHost addrs of
Nothing -> addrs
Just lh -> delete lh addrs <> [lh]
mkLastLocalHost addrs = other <> local
where
localHost RCCtrlAddress {address = a} = a == THIPv4 (127, 0, 0, 1)
(local, other) = partition localHost addrs
localHost RCCtrlAddress {address = THIPv4 (127, _, _, _)} = True
localHost _ = False
preferAddress :: RCCtrlAddress -> [RCCtrlAddress] -> [RCCtrlAddress]
preferAddress RCCtrlAddress {address, interface} addrs =

View File

@@ -9,7 +9,7 @@ import AgentTests.FunctionalAPITests (runRight)
import Control.Logger.Simple
import Crypto.Random (ChaChaDRG)
import qualified Data.Aeson as J
import Data.ByteString.Lazy.Char8 as LB
import qualified Data.ByteString.Lazy.Char8 as LB
import Data.List.NonEmpty (NonEmpty (..))
import qualified Simplex.Messaging.Crypto as C
import Simplex.Messaging.Encoding.String (StrEncoding (..))