module PeerResolve ( peerKeyToResolvedNames , resolvePeer , parseAddress , strip_brackets , withPort ) where import Data.Text ( Text ) import Network.Socket ( SockAddr(..) ) import System.IO.Unsafe import DNSCache import ConnectionKey {-# NOINLINE global_dns_cache #-} global_dns_cache :: DNSCache global_dns_cache = unsafePerformIO $ newDNSCache resolvePeer :: Text -> IO [SockAddr] resolvePeer addrtext = forwardResolve global_dns_cache addrtext peerKeyToResolvedNames :: ConnectionKey -> IO [Text] peerKeyToResolvedNames k@(ClientKey { localAddress=addr }) = return [] peerKeyToResolvedNames k@(PeerKey { callBackAddress=addr }) = do reverseResolve global_dns_cache addr