@@ -14,7 +14,7 @@ import Control.Logger.Simple
1414import Control.Monad
1515import Data.ByteString (ByteString )
1616import Data.Default (def )
17- import Data.List (delete , find )
17+ import Data.List (delete , find , partition )
1818import Data.Maybe (mapMaybe )
1919import Data.String (IsString )
2020import qualified Data.Text as T
@@ -53,11 +53,11 @@ getLocalAddress preferred_ =
5353 ok -> Just RCCtrlAddress {address = THIPv4 ok, interface = T. pack name}
5454
5555mkLastLocalHost :: [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
6262preferAddress :: RCCtrlAddress -> [RCCtrlAddress ] -> [RCCtrlAddress ]
6363preferAddress RCCtrlAddress {address, interface} addrs =
0 commit comments