summaryrefslogtreecommitdiffhomepage
path: root/Network/DNS/StateBinary.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Network/DNS/StateBinary.hs')
-rw-r--r--Network/DNS/StateBinary.hs18
1 files changed, 10 insertions, 8 deletions
diff --git a/Network/DNS/StateBinary.hs b/Network/DNS/StateBinary.hs
index 4241364..5e27b30 100644
--- a/Network/DNS/StateBinary.hs
+++ b/Network/DNS/StateBinary.hs
@@ -3,8 +3,8 @@ module Network.DNS.StateBinary where
import Control.Monad.State
import Data.Binary.Get
import Data.Binary.Put
-import Data.ByteString.Lazy (ByteString)
-import qualified Data.ByteString.Lazy as BS hiding (ByteString)
+import qualified Data.ByteString.Lazy.Char8 as L
+import Data.Char
import Data.IntMap (IntMap)
import qualified Data.IntMap as IM (insert, lookup, empty)
import Data.Word
@@ -82,10 +82,12 @@ getPosition :: SGet Int
getPosition = fromIntegral <$> lift bytesRead
getNBytes :: Int -> SGet [Int]
-getNBytes len = toInts <$> getNbytes len
+getNBytes len = toInts <$> getNByteString len
where
- toInts = map fromIntegral . BS.unpack
- getNbytes = lift . getLazyByteString . fromIntegral
+ toInts = map ord . L.unpack
+
+getNByteString :: Int -> SGet L.ByteString
+getNByteString len = lift . getLazyByteString . fromIntegral $ len
----------------------------------------------------------------
@@ -100,8 +102,8 @@ pop n = IM.lookup n <$> get
initialState :: IntMap Domain
initialState = IM.empty
-runSGet :: SGet DNSFormat -> ByteString -> DNSFormat
+runSGet :: SGet DNSFormat -> L.ByteString -> DNSFormat
runSGet res bs = fst $ runGet (runStateT res initialState) bs
-runSPut :: Put -> ByteString
-runSPut = runPut \ No newline at end of file
+runSPut :: Put -> L.ByteString
+runSPut = runPut