From c2bd3b127be27a40cb279fb82d16cff147aaa10e Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Tue, 23 Mar 2010 20:36:49 +0900 Subject: add Lookup. --- Network/DNS/Lookup.hs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Network/DNS/Lookup.hs (limited to 'Network') diff --git a/Network/DNS/Lookup.hs b/Network/DNS/Lookup.hs new file mode 100644 index 0000000..c458149 --- /dev/null +++ b/Network/DNS/Lookup.hs @@ -0,0 +1,33 @@ +module Network.DNS.Lookup where + +import Control.Applicative +import Data.IP +import Network.DNS.Types +import Network.DNS.Resolver as DNS + +lookupA :: Resolver -> Domain -> IO (Maybe [IPv4]) +lookupA rlv dom = toV4 <$> DNS.lookup rlv dom A + where + toV4 = maybe Nothing (Just . map unTag) + unTag (RD_A x) = x + unTag _ = error "lookupA" + +lookupAAAA :: Resolver -> Domain -> IO (Maybe [IPv6]) +lookupAAAA rlv dom = toV6 <$> DNS.lookup rlv dom AAAA + where + toV6 = maybe Nothing (Just . map unTag) + unTag (RD_AAAA x) = x + unTag _ = error "lookupAAAA" + +lookupAviaMX :: Resolver -> Domain -> IO (Maybe [IPv4]) +lookupAviaMX = undefined + +lookupAAAAviaMX :: Resolver -> Domain -> IO (Maybe [IPv6]) +lookupAAAAviaMX = undefined + +lookupTXT :: Resolver -> Domain -> IO (Maybe [String]) +lookupTXT rlv dom = toTXT <$> DNS.lookup rlv dom TXT + where + toTXT = maybe Nothing (Just . map unTag) + unTag (RD_TXT x) = x + unTag _ = error "lookupTXT" -- cgit v1.2.3