resolve_address )
where
-import Control.Monad ( liftM )
import qualified Data.ByteString.Char8 as BS ( pack )
import Data.IP (IPv4)
import Network.DNS (
-- Examples:
--
-- >>> resolve_address "example.com"
--- Right [93.184.216.119]
--- >>> resolve_address "93.184.216.119"
--- Right [93.184.216.119]
+-- Right [93.184.216.34]
+-- >>> resolve_address "93.184.216.34"
+-- Right [93.184.216.34]
--
resolve_address :: String -> IO (Either DNSError [IPv4])
resolve_address s =
--
-- Examples:
--
--- The example domain, example.com, has no MX record.
+-- The example domain, example.com, has a NULLMX record.
--
-- >>> rs <- makeResolvSeed defaultResolvConf
-- >>> let domain = BS.pack "example.com."
-- >>> withResolver rs $ \resolver -> lookupMX' resolver domain
--- ("example.com.",Right [])
+-- ("example.com.",Right ["."])
--
lookupMX' :: Resolver -> Domain -> IO LookupResult
lookupMX' resolver domain =
- liftM (pair_em . drop_priority) $ lookupMX resolver domain
+ fmap (pair_em . drop_priority) $ lookupMX resolver domain
where
drop_priority :: Either DNSError [(Domain, Int)]
-> Either DNSError [Domain]
lookupNS' resolver domain = do
answer_result <- lookupNS resolver domain
auth_result <- lookupNSAuth resolver domain
- liftM pair_em $ return $ combine answer_result auth_result
+ fmap pair_em $ return $ combine answer_result auth_result
where
pair_em :: a -> (Domain, a)
pair_em = (,) domain