@@ -67,17 +67,16 @@ mapRight f eith = case eith of
68fileRange :: H.Status -> H.ResponseHeaders -> FilePath
68fileRange :: H.Status -> H.ResponseHeaders -> FilePath
69 -> Maybe FilePart -> Maybe HeaderValue
69 -> Maybe FilePart -> Maybe HeaderValue
71 -> IO (Either IOException
70 -> IO (Either IOException
72 (H.Status, H.ResponseHeaders, Integer, Integer))
71 (H.Status, H.ResponseHeaders, Integer, Integer))
73−fileRange s0 hs0 path mPart mRange rspidxhdr =
72+fileRange s0 hs0 path mPart mRange =
74 mapRight (fileRangeSized . fromIntegral . P.fileSize) <$>
73 mapRight (fileRangeSized . fromIntegral . P.fileSize) <$>
75 try (P.getFileStatus path)
74 try (P.getFileStatus path)
77 fileRangeSized :: Integer -> (H.Status, H.ResponseHeaders, Integer, Integer)
76 fileRangeSized :: Integer -> (H.Status, H.ResponseHeaders, Integer, Integer)
78 fileRangeSized fileSize =
77 fileRangeSized fileSize =
79 let (beg, end, len, isEntire) = checkPartRange fileSize mPart mRange
78 let (beg, end, len, isEntire) = checkPartRange fileSize mPart mRange
80− hs1 = addContentLength rspidxhdr len hs0
79+ hs1 = addContentLength len hs0
81 hs | isEntire = hs1
80 hs | isEntire = hs1
82 | otherwise = addContentRange beg end fileSize hs1
81 | otherwise = addContentRange beg end fileSize hs1
83 s | isEntire = s0
82 s | isEntire = s0
@@ -214,7 +213,7 @@ sendRsp :: Connection
216sendRsp conn ver s0 hs0 (RspFile path mPart mRange hook) = do
215sendRsp conn ver s0 hs0 (RspFile path mPart mRange hook) = do
217− ex <- fileRange s0 hs path mPart mRange rspidxhdr
216+ ex <- fileRange s0 hs path mPart mRange
218 case ex of
217 case ex of
219 Left _ex ->
218 Left _ex ->
220#ifdef WARP_DEBUG
219#ifdef WARP_DEBUG
@@ -229,7 +228,6 @@ sendRsp conn ver s0 hs0 (RspFile path mPart mRange hook) = do
229 s2 = H.status404
228 s2 = H.status404
230 hs2 = replaceHeader H.hContentType "text/plain; charset=utf-8" hs0
229 hs2 = replaceHeader H.hContentType "text/plain; charset=utf-8" hs0
231 body = fromByteString "File not found"
230 body = fromByteString "File not found"
232− rspidxhdr = indexResponseHeader hs0
234----------------------------------------------------------------
232----------------------------------------------------------------
@@ -358,10 +356,8 @@ addAcceptRanges hdrs = (hAcceptRanges, "bytes") : hdrs
358addTransferEncoding :: H.ResponseHeaders -> H.ResponseHeaders
356addTransferEncoding :: H.ResponseHeaders -> H.ResponseHeaders
359addTransferEncoding hdrs = (hTransferEncoding, "chunked") : hdrs
357addTransferEncoding hdrs = (hTransferEncoding, "chunked") : hdrs
361−addContentLength :: IndexedHeader -> Integer -> H.ResponseHeaders -> H.ResponseHeaders
359+addContentLength :: Integer -> H.ResponseHeaders -> H.ResponseHeaders
362−addContentLength rspidxhdr cl hdrs = case rspidxhdr ! idxContentLength of
363− Nothing -> (H.hContentLength, len) : hdrs
360+addContentLength cl hdrs = (H.hContentLength, len) : hdrs
366 len = B.pack $ show cl
362 len = B.pack $ show cl