on master help sign in
refactoring for addContentRange.
commit673a1594b2f13a68f4cb72dd3af868a378210697 authorKazu Yamamoto <kazu@iij.ad.jp> dateThu 31 Oct 2013, 10:29 (13 years ago) parenta657107
1 file changed+10−12
warp/Network/Wai/Handler/Warp/Response.hs+10−12
warp/Network/Wai/Handler/Warp/Response.hs+10−12
@@ -48,7 +48,6 @@ fileRange reqidxhdr rspidxhdr s0 hs0 path mpart =
4848 where
4949 mRange = reqidxhdr ! idxRange
5050 mContentLength = rspidxhdr ! idxContentLength
51− mContentRange = rspidxhdr ! idxContentRange
5251
5352 checkContentLength s' hdr' = do
5453 quad@(s, hdr, beg, len) <- checkMpart s' hdr' mpart
@@ -74,7 +73,7 @@ fileRange reqidxhdr rspidxhdr s0 hs0 path mpart =
7473 len = filePartByteCount part
7574 end = beg + len - 1
7675 fileSize = filePartFileSize part
77− hdr' = addRange hdr fileSize beg end mContentRange
76+ hdr' = addContentRange rspidxhdr fileSize beg end hdr
7877
7978 checkRange s hdr Nothing fileSize = (s, hdr, 0, fileSize)
8079 checkRange s hdr (Just range) fileSize = case mhrange of
@@ -90,15 +89,10 @@ fileRange reqidxhdr rspidxhdr s0 hs0 path mpart =
9089 fromRange hdr fileSize from to = (status, hdr', beg, len)
9190 where
9291 status = H.status206
93− hdr' = addRange hdr fileSize from to mContentRange
92+ hdr' = addContentRange rspidxhdr fileSize from to hdr
9493 beg = from
9594 len = to - from + 1
9695
97− -- We respect Content-Range.
98− -- The validity of Content-Range's value is Applications's responsibility.
99− addRange hdr fileSize from to Nothing = addContentRange fileSize from to hdr
100− addRange hdr _ _ _ _ = hdr
101−
10296----------------------------------------------------------------
10397
10498sendResponse :: Connection
@@ -271,10 +265,14 @@ addTransferEncoding hdrs = (hTransferEncoding, "chunked") : hdrs
271265addServer :: IndexedHeader -> H.ResponseHeaders -> H.ResponseHeaders
272266addServer rspidxhdr hdrs = case rspidxhdr ! idxServer of
273267 Nothing -> (hServer, defaultServerValue) : hdrs
274− Just _ -> hdrs
275−
276−addContentRange :: Integer -> Integer -> Integer -> H.ResponseHeaders -> H.ResponseHeaders
277−addContentRange total from to hdrs = (hContentRange, range) : hdrs
268+ _ -> hdrs
269+
270+addContentRange :: IndexedHeader
271+ -> Integer -> Integer -> Integer
272+ -> H.ResponseHeaders -> H.ResponseHeaders
273+addContentRange rspidxhdr total from to hdrs = case rspidxhdr ! idxContentRange of
274+ Nothing -> (hContentRange, range) : hdrs
275+ _ -> hdrs
278276 where
279277 range = B.pack
280278 -- building with ShowS