From 8ba004e4135783c2a3c79e057c553fa01fb87a57 Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Tue, 30 Aug 2011 14:50:50 +0900 Subject: clean up code. --- Network/DNS/Query.hs | 24 ++++++++++++++---------- Network/DNS/StateBinary.hs | 12 ++++++------ 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 ---------------------------------------------------------------- -- cgit v1.2.3