packages feed

snap-server 0.2.1 → 0.2.2

raw patch · 2 files changed

+15/−6 lines, 2 files

Files

snap-server.cabal view
@@ -1,5 +1,5 @@ name:           snap-server-version:        0.2.1+version:        0.2.2 synopsis:       A fast, iteratee-based, epoll-enabled web server for the Snap Framework description:   This is the first developer prerelease of the Snap framework.  Snap is a
src/Snap/Internal/Http/Parser.hs view
@@ -30,6 +30,7 @@ import           Data.Char import           Data.List (foldl') import           Data.Int+import           Data.Iteratee.WrappedByteString import           Data.Map (Map) import qualified Data.Map as Map import           Data.Maybe (catMaybes)@@ -97,6 +98,8 @@ -- | Given an iteratee, produces a new one that wraps chunks sent to it with a -- chunked transfer-encoding. Example usage: --+-- FIXME: sample output no longer looks like this, we buffer now+-- -- > > (writeChunkedTransferEncoding -- >     (enumLBS (L.fromChunks ["foo","bar","quux"])) -- >     stream2stream) >>=@@ -107,7 +110,8 @@ -- writeChunkedTransferEncoding :: (Monad m) => Enumerator m a -> Enumerator m a writeChunkedTransferEncoding enum it = do-    i <- wrap it+    i' <- wrap it+    i  <- bufferIteratee i'     enum i    where@@ -121,13 +125,18 @@           (Chunk x') -> do               let x = S.concat $ L.toChunks $ fromWrap x'               let n = S.length x-              let o = L.fromChunks [ toHex (toEnum n)+              if n == 0+                then do+                    i' <- wrap iter+                    return $ Cont i' Nothing+                else do+                  let o = S.concat [ toHex (toEnum n)                                    , "\r\n"                                    , x                                    , "\r\n" ]-              v <- runIter iter (Chunk $ toWrap o)-              i <- checkIfDone wrap v-              return $ Cont i Nothing+                  v <- runIter iter (Chunk $ WrapBS o)+                  i <- checkIfDone wrap v+                  return $ Cont i Nothing   chunkParserToEnumerator :: (Monad m) =>