summaryrefslogtreecommitdiffhomepage
path: root/Network/DNS/Internal.hs
diff options
context:
space:
mode:
authorGravatar Kazu Yamamoto <kazu@iij.ad.jp>2010-03-17 18:05:25 +0900
committerGravatar Kazu Yamamoto <kazu@iij.ad.jp>2010-03-17 18:05:25 +0900
commit8923a95ae272bb6565962803d533f26a52b6463c (patch)
treee0b5b271c7fd5e8540d526d3b7ed95cf6eddb670 /Network/DNS/Internal.hs
parent510f31b3e1de263a2da95217cc9a8b440a769691 (diff)
supporting CNAME
Diffstat (limited to 'Network/DNS/Internal.hs')
-rw-r--r--Network/DNS/Internal.hs14
1 files changed, 12 insertions, 2 deletions
diff --git a/Network/DNS/Internal.hs b/Network/DNS/Internal.hs
index ceedb2b..ac6b8ba 100644
--- a/Network/DNS/Internal.hs
+++ b/Network/DNS/Internal.hs
@@ -5,12 +5,13 @@ import Data.IP
----------------------------------------------------------------
-data TYPE = A | AAAA | NS | TXT | MX | UNKNOWN deriving (Eq, Show, Read)
+data TYPE = A | AAAA | NS | TXT | MX | CNAME | UNKNOWN deriving (Eq, Show, Read)
rrDB :: [(TYPE, Int)]
rrDB = [
(A, 1)
, (NS, 2)
+ , (CNAME, 5)
, (MX, 15)
, (TXT, 16)
, (AAAA, 28)
@@ -59,7 +60,16 @@ data ResourceRecord = ResourceRecord {
, rdata :: RDATA
} deriving (Eq, Show)
-data RDATA = RD_NS Domain | RD_A IPv4 | RD_AAAA IPv6 | RD_OTH [Int] deriving (Eq, Show)
+data RDATA = RD_NS Domain | RD_CNAME Domain
+ | RD_A IPv4 | RD_AAAA IPv6
+ | RD_OTH [Int] deriving (Eq)
+
+instance Show RDATA where
+ show (RD_NS dom) = dom
+ show (RD_CNAME dom) = dom
+ show (RD_A a) = show a
+ show (RD_AAAA aaaa) = show aaaa
+ show (RD_OTH is) = show is
----------------------------------------------------------------