summaryrefslogtreecommitdiffhomepage
path: root/Network/DNS/Lookup.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Network/DNS/Lookup.hs')
-rw-r--r--Network/DNS/Lookup.hs13
1 files changed, 13 insertions, 0 deletions
diff --git a/Network/DNS/Lookup.hs b/Network/DNS/Lookup.hs
index 79af339..728b0c6 100644
--- a/Network/DNS/Lookup.hs
+++ b/Network/DNS/Lookup.hs
@@ -6,6 +6,7 @@ module Network.DNS.Lookup (
lookupA, lookupAAAA
, lookupMX, lookupAviaMX, lookupAAAAviaMX
, lookupTXT
+ , lookupPTR
) where
import Control.Applicative
@@ -82,3 +83,15 @@ lookupTXT rlv dom = toTXT <$> DNS.lookup rlv dom TXT
toTXT = maybe Nothing (Just . map unTag)
unTag (RD_TXT x) = x
unTag _ = error "lookupTXT"
+
+----------------------------------------------------------------
+
+{-|
+ Resolving 'Domain' and its preference by 'PTR'.
+-}
+lookupPTR :: Resolver -> Domain -> IO (Maybe [Domain])
+lookupPTR rlv dom = toPTR <$> DNS.lookup rlv dom PTR
+ where
+ toPTR = maybe Nothing (Just . map unTag)
+ unTag (RD_PTR dm) = dm
+ unTag _ = error "lookupPTR"