summaryrefslogtreecommitdiffhomepage
path: root/Network
diff options
context:
space:
mode:
authorGravatar Kazu Yamamoto <kazu@iij.ad.jp>2010-03-22 16:30:34 +0900
committerGravatar Kazu Yamamoto <kazu@iij.ad.jp>2010-03-22 16:30:34 +0900
commitfacb65df3bcd87b67c3afbc5888537340c1147ff (patch)
treea555651dfe7d9a72e24f310141c1c4c4d0c7134b /Network
parent26bced9be4eeefb236f332687a0687c5885f898c (diff)
handling TXT.
Diffstat (limited to 'Network')
-rw-r--r--Network/DNS/Internal.hs3
-rw-r--r--Network/DNS/Response.hs1
2 files changed, 3 insertions, 1 deletions
diff --git a/Network/DNS/Internal.hs b/Network/DNS/Internal.hs
index ff1b6d7..a048df5 100644
--- a/Network/DNS/Internal.hs
+++ b/Network/DNS/Internal.hs
@@ -125,7 +125,7 @@ data ResourceRecord = ResourceRecord {
-}
data RDATA = RD_NS Domain | RD_CNAME Domain | RD_MX Int Domain
| RD_SOA Domain Domain Int Int Int Int Int
- | RD_A IPv4 | RD_AAAA IPv6
+ | RD_A IPv4 | RD_AAAA IPv6 | RD_TXT String
| RD_OTH [Int] deriving (Eq)
instance Show RDATA where
@@ -134,6 +134,7 @@ instance Show RDATA where
show (RD_CNAME dom) = dom
show (RD_A a) = show a
show (RD_AAAA aaaa) = show aaaa
+ show (RD_TXT txt) = txt
show (RD_SOA mn _ _ _ _ _ mi) = mn ++ " " ++ show mi
show (RD_OTH is) = show is
diff --git a/Network/DNS/Response.hs b/Network/DNS/Response.hs
index 92808ae..e49013a 100644
--- a/Network/DNS/Response.hs
+++ b/Network/DNS/Response.hs
@@ -97,6 +97,7 @@ decodeRData MX _ = RD_MX <$> decodePreference <*> decodeDomain
where
decodePreference = getInt16
decodeRData CNAME _ = RD_CNAME <$> decodeDomain
+decodeRData TXT len = (RD_TXT . map chr) <$> getNBytes len
decodeRData A len = (RD_A . toIPv4) <$> getNBytes len
decodeRData AAAA len = (RD_AAAA . toIPv6 . combine) <$> getNBytes len
where