packages feed

websockets 0.6.0.1 → 0.6.0.2

raw patch · 8 files changed

+16/−38 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

src/Network/WebSockets/Monad.hs view
@@ -32,7 +32,6 @@ import Control.Monad.Reader (ReaderT, ask, runReaderT) import Control.Monad.Trans (MonadIO, lift, liftIO) import Data.Foldable (forM_)-import System.Random (newStdGen)  import Blaze.ByteString.Builder (Builder) import Data.ByteString (ByteString)@@ -141,8 +140,7 @@                    -> Iteratee ByteString IO a runWebSocketsWith' opts proto ws outIter = do     -- Create sink with a random source-    gen <- liftIO newStdGen-    let sinkIter = encodeMessages proto gen =$ builderToByteString =$ outIter+    let sinkIter = encodeMessages proto =$ builderToByteString =$ outIter     sink <- Sink <$> liftIO (newMVar sinkIter)      let sender = makeBuilderSender outIter
src/Network/WebSockets/Protocol.hs view
@@ -12,7 +12,6 @@     ) where  import Blaze.ByteString.Builder (Builder)-import System.Random (RandomGen) import qualified Data.ByteString as B import qualified Data.Enumerator as E @@ -39,9 +38,8 @@      -- | Encodes messages to binary 'Builder's. Takes a random source so it is     -- able to do masking of frames (needed in some cases).-    encodeMessages  :: (Monad m, RandomGen g)+    encodeMessages  :: Monad m                     => p-                    -> g                     -> E.Enumeratee (Message p) Builder m a      -- | Decodes messages from binary 'B.ByteString's.
src/Network/WebSockets/Protocol/Hybi00.hs view
@@ -17,7 +17,7 @@     version        (Hybi00 p)   = version p     headerVersions (Hybi00 p)   = headerVersions p     supported      (Hybi00 p) h = supported p h-    encodeMessages (Hybi00 p) g = (EL.map castMessage =$) . encodeMessages p g+    encodeMessages (Hybi00 p)   = (EL.map castMessage =$) . encodeMessages p     decodeMessages (Hybi00 p)   = (decodeMessages p =$) . EL.map castMessage     finishRequest  (Hybi00 p)   = finishRequest p     implementations             = [Hybi00 Hybi10_, Hybi00 Hybi00_]
src/Network/WebSockets/Protocol/Hybi00/Internal.hs view
@@ -30,7 +30,7 @@     version         Hybi00_   = "hybi00"     headerVersions  Hybi00_   = []  -- The client will elide it     supported       Hybi00_ h = getSecWebSocketVersion h == Nothing-    encodeMessages  Hybi00_ _ = EL.map encodeMessage+    encodeMessages  Hybi00_   = EL.map encodeMessage     decodeMessages  Hybi00_   = E.sequence (A.iterParser parseMessage)     finishRequest   Hybi00_   = handshakeHybi00     implementations           = [Hybi00_]
src/Network/WebSockets/Protocol/Hybi10.hs view
@@ -15,7 +15,7 @@     version        (Hybi10 p)   = version p     headerVersions (Hybi10 p)   = headerVersions p     supported      (Hybi10 p) h = supported p h-    encodeMessages (Hybi10 p) g = (EL.map castMessage =$) . encodeMessages p g+    encodeMessages (Hybi10 p)   = (EL.map castMessage =$) . encodeMessages p     decodeMessages (Hybi10 p)   = (decodeMessages p =$) . EL.map castMessage     finishRequest  (Hybi10 p)   = finishRequest p     implementations             = [Hybi10 Hybi10_]
src/Network/WebSockets/Protocol/Hybi10/Internal.hs view
@@ -8,7 +8,6 @@ import Data.Bits ((.&.), (.|.)) import Data.Maybe (maybeToList) import Data.Monoid (mempty, mappend, mconcat)-import System.Random (RandomGen)  import Data.Attoparsec (anyWord8) import Data.Binary.Get (runGet, getWord16be, getWord64be)@@ -38,7 +37,7 @@ instance Protocol Hybi10_ where     version         Hybi10_ = "hybi10"     headerVersions  Hybi10_ = ["13", "8", "7"]-    encodeMessages  Hybi10_ = EL.mapAccum encodeMessageHybi10+    encodeMessages  Hybi10_ = EL.map encodeMessageHybi10     decodeMessages  Hybi10_ = decodeMessagesHybi10     finishRequest   Hybi10_ = handshakeHybi10     implementations         = [Hybi10_]@@ -46,11 +45,10 @@ instance TextProtocol Hybi10_ instance BinaryProtocol Hybi10_ -encodeMessageHybi10 :: RandomGen g => g -> Message p -> (g, B.Builder)-encodeMessageHybi10 gen msg = (gen', builder)+encodeMessageHybi10 :: Message p -> B.Builder+encodeMessageHybi10 msg = builder   where-    (mask, gen') = randomMask gen-    builder      = encodeFrameHybi10 mask $ case msg of+    builder = encodeFrameHybi10 $ case msg of         (ControlMessage (Close pl)) -> Frame True CloseFrame pl         (ControlMessage (Ping pl))  -> Frame True PingFrame pl         (ControlMessage (Pong pl))  -> Frame True PongFrame pl@@ -58,10 +56,10 @@         (DataMessage (Binary pl))   -> Frame True BinaryFrame pl  -- | Encode a frame-encodeFrameHybi10 :: Mask -> Frame -> B.Builder-encodeFrameHybi10 mask f = B.fromWord8 byte0 `mappend`-    B.fromWord8 byte1 `mappend` len `mappend` maskbytes `mappend`-    B.fromLazyByteString (maskPayload mask (framePayload f))+encodeFrameHybi10 :: Frame -> B.Builder+encodeFrameHybi10 f = B.fromWord8 byte0 `mappend`+    B.fromWord8 byte1 `mappend` len `mappend`+    B.fromLazyByteString (framePayload f)   where     byte0  = fin .|. opcode     fin    = if frameFin f then 0x80 else 0x00@@ -73,11 +71,7 @@         PingFrame         -> 0x09         PongFrame         -> 0x0a -    (maskflag, maskbytes) = case mask of-        Nothing -> (0x00, mempty)-        Just m  -> (0x80, B.fromByteString m)--    byte1 = maskflag .|. lenflag+    byte1 = lenflag     len'  = BL.length (framePayload f)     (lenflag, len)         | len' < 126     = (fromIntegral len', mempty)
src/Network/WebSockets/Protocol/Hybi10/Mask.hs view
@@ -3,11 +3,9 @@ module Network.WebSockets.Protocol.Hybi10.Mask     ( Mask     , maskPayload-    , randomMask     ) where -import Data.Bits (shiftR, xor)-import System.Random (RandomGen, random)+import Data.Bits (xor)  import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL@@ -24,13 +22,3 @@     f !i !c = let i' = (i + 1) `mod` len                   m = mask `B.index` i               in (i', m `xor` c)---- | Create a random mask-randomMask :: forall g. RandomGen g => g -> (Mask, g)-randomMask gen = (Just (B.pack [b1, b2, b3, b4]), gen')-  where-    (!int, !gen') = random gen :: (Int, g)-    !b1           = fromIntegral $ int `mod` 0x100-    !b2           = fromIntegral $ int `shiftR` 8  `mod` 0x100-    !b3           = fromIntegral $ int `shiftR` 16 `mod` 0x100-    !b4           = fromIntegral $ int `shiftR` 24 `mod` 0x100
websockets.cabal view
@@ -1,5 +1,5 @@ Name:    websockets-Version: 0.6.0.1+Version: 0.6.0.2  Synopsis:   A sensible and clean way to write WebSocket-capable servers in Haskell.