From ef8bab8568b5263797d5534202ac192839663ce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 22 Aug 2026 15:39:40 +0200 Subject: Discovery on localhost Changelog: Discovery is now working also on localhost without need for external interface. --- src/Erebos/Network/Address.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/Erebos/Network') diff --git a/src/Erebos/Network/Address.hs b/src/Erebos/Network/Address.hs index 63f6af1..8dedecd 100644 --- a/src/Erebos/Network/Address.hs +++ b/src/Erebos/Network/Address.hs @@ -2,6 +2,8 @@ module Erebos.Network.Address ( InetAddress(..), inetFromSockAddr, inetToSockAddr, + makeLocalhostAddress, + getLocalhostPort, SockAddr, PortNumber, ) where @@ -63,3 +65,11 @@ inetFromSockAddr saddr = first InetAddress <$> IP.fromSockAddr saddr inetToSockAddr :: ( InetAddress, PortNumber ) -> SockAddr inetToSockAddr = IP.toSockAddr . first fromInetAddress + + +makeLocalhostAddress :: PortNumber -> SockAddr +makeLocalhostAddress port = SockAddrInet6 port 0 ( 0, 0, 0, 1 ) 0 + +getLocalhostPort :: SockAddr -> Maybe PortNumber +getLocalhostPort (SockAddrInet6 port _ ( 0, 0, 0, 1 ) _) = Just port +getLocalhostPort _ = Nothing -- cgit v1.2.3