module Network.DNS.Cache.Utils where import qualified Data.ByteString.Char8 as BS import Data.Char (isDigit) import Network.DNS.Cache.Types isIPAddr :: Domain -> Bool isIPAddr hn = length groups == 4 && all ip groups where groups = BS.split '.' hn ip x = BS.length x <= 3 && BS.all isDigit x && read (BS.unpack x) <= (255 :: Int) fromResult :: Result -> HostAddress fromResult (Hit addr) = addr fromResult (Resolved addr) = addr fromResult (Numeric addr) = addr fromEither :: Either DNSError Result -> Maybe HostAddress fromEither (Right res) = Just (fromResult res) fromEither (Left _) = Nothing