summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Kazu Yamamoto <kazu@iij.ad.jp>2011-08-30 14:50:50 +0900
committerGravatar Kazu Yamamoto <kazu@iij.ad.jp>2011-08-30 14:50:50 +0900
commit8ba004e4135783c2a3c79e057c553fa01fb87a57 (patch)
treee4186e02fff1adce313a396418a88c9ae225ee4c
parent0fa5d283af40eb6d994dde824f3e3beea1dc070b (diff)
clean up code.
-rw-r--r--Network/DNS/Query.hs24
-rw-r--r--Network/DNS/StateBinary.hs12
2 files changed, 20 insertions, 16 deletions
diff --git a/Network/DNS/Query.hs b/Network/DNS/Query.hs
index 12343d9..7c27b63 100644
--- a/Network/DNS/Query.hs
+++ b/Network/DNS/Query.hs
@@ -1,8 +1,8 @@
module Network.DNS.Query (composeQuery) where
import qualified Data.ByteString.Lazy.Char8 as BL (ByteString)
-import qualified Data.ByteString.Char8 as BS (length, split, unpack, null)
-import Data.Char
+import qualified Data.ByteString as BS (unpack)
+import qualified Data.ByteString.Char8 as BS (length, split, null)
import Network.DNS.StateBinary
import Network.DNS.Internal
import Data.Monoid
@@ -41,18 +41,18 @@ encodeHeader hdr = encodeIdentifier (identifier hdr)
+++ decodeNsCount (nsCount hdr)
+++ decodeArCount (arCount hdr)
where
- encodeIdentifier = putInt16 . fromIntegral
- decodeQdCount = putInt16 . fromIntegral
- decodeAnCount = putInt16 . fromIntegral
- decodeNsCount = putInt16 . fromIntegral
- decodeArCount = putInt16 . fromIntegral
+ encodeIdentifier = putInt16
+ decodeQdCount = putInt16
+ decodeAnCount = putInt16
+ decodeNsCount = putInt16
+ decodeArCount = putInt16
encodeFlags :: DNSFlags -> SPut
encodeFlags _ = put16 0x0100 -- xxx
encodeQuestion :: [Question] -> SPut
encodeQuestion qs = encodeDomain dom
- +++ putInt16 (fromIntegral (typeToInt typ))
+ +++ putInt16 (typeToInt typ)
+++ put16 1
where
q = head qs
@@ -66,5 +66,9 @@ encodeDomain dom = foldr (+++) (put8 0) (map encodeSubDomain $ zip ls ss)
where
ss = filter (not . BS.null) $ BS.split '.' dom
ls = map BS.length ss
- encodeSubDomain (len,sub) = putInt8 (fromIntegral len)
- +++ foldr (+++) mempty (map (putInt8 . fromIntegral . ord) (BS.unpack sub))
+
+encodeSubDomain :: (Int, Domain) -> SPut
+encodeSubDomain (len,sub) = putInt8 len
+ +++ foldr (+++) mempty (map put8 ss)
+ where
+ ss = BS.unpack sub
diff --git a/Network/DNS/StateBinary.hs b/Network/DNS/StateBinary.hs
index bd54a75..2bd610c 100644
--- a/Network/DNS/StateBinary.hs
+++ b/Network/DNS/StateBinary.hs
@@ -50,14 +50,14 @@ put16 = writeWord16be
put32 :: Word32 -> SPut
put32 = writeWord32be
-putInt8 :: Int8 -> SPut
-putInt8 = writeInt8
+putInt8 :: Int -> SPut
+putInt8 = writeInt8 . fromIntegral
-putInt16 :: Int16 -> SPut
-putInt16 = writeInt16be
+putInt16 :: Int -> SPut
+putInt16 = writeInt16be . fromIntegral
-putInt32 :: Int32 -> SPut
-putInt32 = writeInt32be
+putInt32 :: Int -> SPut
+putInt32 = writeInt32be . fromIntegral
----------------------------------------------------------------