mptcp-pm-0.0.5: src/Net/Mptcp/Utils.hs
module Net.Mptcp.Utils
where
import Data.Word
import Data.ByteString
import Data.Serialize.Get
-- | TODO change / return Either
readToken :: ByteString -> Either String Word32
readToken val = runGet getWord32host val
getPort :: ByteString -> Word16
getPort val =
case (runGet getWord16host val) of
Left _ -> 0
Right port -> port
-- LocId => Word8
readLocId :: Maybe ByteString -> Word8
readLocId maybeVal = case maybeVal of
Nothing -> error "Missing locator id"
Just val -> case runGet getWord8 val of
-- TODO generate an error here !
Left _ -> error "Could not get locId !!"
Right locId -> locId
-- runGet getWord8 val