From 825e27472ab361f9fdb46146c44cd56a571ed947 Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Wed, 17 Mar 2010 22:25:49 +0900 Subject: adding API --- Network/DNS/Response.hs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'Network/DNS/Response.hs') diff --git a/Network/DNS/Response.hs b/Network/DNS/Response.hs index 1ef8973..fa4cdf4 100644 --- a/Network/DNS/Response.hs +++ b/Network/DNS/Response.hs @@ -92,14 +92,24 @@ decodeRR = do decodeRLen = getInt16 decodeRData :: TYPE -> Int -> SGet RDATA -decodeRData NS _ = RD_NS <$> decodeDomain +decodeRData NS _ = RD_NS <$> decodeDomain +decodeRData MX _ = RD_MX <$> decodePreference <*> decodeDomain + where + decodePreference = getInt16 +decodeRData CNAME _ = RD_CNAME <$> decodeDomain decodeRData A len = (RD_A . toIPv4) <$> getNBytes len decodeRData AAAA len = (RD_AAAA . toIPv6 . combine) <$> getNBytes len where combine [] = [] combine [_] = error "combine" combine (a:b:cs) = a * 256 + b : combine cs -decodeRData CNAME _ = RD_CNAME <$> decodeDomain +decodeRData SOA _ = RD_SOA <$> decodeDomain + <*> decodeDomain + <*> getInt32 + <*> getInt32 + <*> getInt32 + <*> getInt32 + <*> getInt32 decodeRData _ len = RD_OTH <$> getNBytes len ---------------------------------------------------------------- -- cgit v1.2.3