warp 3.0.5.2 → 3.0.6
raw patch · 2 files changed
+20/−15 lines, 2 files
Files
- Network/Wai/Handler/Warp/Response.hs +19/−14
- warp.cabal +1/−1
Network/Wai/Handler/Warp/Response.hs view
@@ -66,23 +66,28 @@ ---------------------------------------------------------------- fileRange :: H.Status -> H.ResponseHeaders -> FilePath- -> Maybe FilePart -> Maybe HeaderValue+ -> Maybe FilePart -> Maybe HeaderValue -> IO (Either IOException (H.Status, H.ResponseHeaders, Integer, Integer))-fileRange s0 hs0 path mPart mRange =- mapRight (fileRangeSized . fromIntegral . P.fileSize) <$>- try (P.getFileStatus path)- where- fileRangeSized :: Integer -> (H.Status, H.ResponseHeaders, Integer, Integer)- fileRangeSized fileSize =- let (beg, end, len, isEntire) = checkPartRange fileSize mPart mRange- hs1 = addContentLength len hs0- hs | isEntire = hs1- | otherwise = addContentRange beg end fileSize hs1- s | isEntire = s0- | otherwise = H.status206- in (s, hs, beg, len)+fileRange s0 hs0 path Nothing mRange =+ mapRight (fileRangeSized s0 hs0 Nothing mRange . fromIntegral . P.fileSize) <$>+ try (P.getFileStatus path)+fileRange s0 hs0 _ mPart@(Just part) mRange =+ return . Right $ fileRangeSized s0 hs0 mPart mRange size+ where+ size = filePartFileSize part +fileRangeSized :: H.Status -> H.ResponseHeaders+ -> Maybe FilePart -> Maybe HeaderValue -> Integer+ -> (H.Status, H.ResponseHeaders, Integer, Integer)+fileRangeSized s0 hs0 mPart mRange fileSize = (s, hs, beg, len)+ where+ (beg, end, len, isEntire) = checkPartRange fileSize mPart mRange+ hs1 = addContentLength len hs0+ hs | isEntire = hs1+ | otherwise = addContentRange beg end fileSize hs1+ s | isEntire = s0+ | otherwise = H.status206 checkPartRange :: Integer -> Maybe FilePart -> Maybe HeaderValue -> (Integer, Integer, Integer, Bool)
warp.cabal view
@@ -1,5 +1,5 @@ Name: warp-Version: 3.0.5.2+Version: 3.0.6 Synopsis: A fast, light-weight web server for WAI applications. License: MIT License-file: LICENSE