@@ -30,17 +30,17 @@ import Network.Wai.Handler.Warp.Types
30import Network.Wai.Internal (Request(..))
30import Network.Wai.Internal (Request(..))
31import System.IO.Unsafe (unsafePerformIO)
31import System.IO.Unsafe (unsafePerformIO)
33−type MkReq = (TokenHeaderList,ValueTable) -> IO ByteString -> IO (Request,InternalInfo)
33+type MkReq = (TokenHeaderList,ValueTable) -> (Maybe Int,IO ByteString) -> IO (Request,InternalInfo)
35mkRequest :: InternalInfo1 -> S.Settings -> SockAddr -> MkReq
35mkRequest :: InternalInfo1 -> S.Settings -> SockAddr -> MkReq
36−mkRequest ii1 settings addr (reqths,reqvt) body = do
36+mkRequest ii1 settings addr (reqths,reqvt) (bodylen,body) = do
37 ref <- newIORef Nothing
37 ref <- newIORef Nothing
38− mkRequest' ii1 settings addr ref (reqths,reqvt) body
38+ mkRequest' ii1 settings addr ref (reqths,reqvt) (bodylen,body)
40mkRequest' :: InternalInfo1 -> S.Settings -> SockAddr
40mkRequest' :: InternalInfo1 -> S.Settings -> SockAddr
41 -> IORef (Maybe HTTP2Data)
41 -> IORef (Maybe HTTP2Data)
43−mkRequest' ii1 settings addr ref (reqths,reqvt) body = return (req,ii)
43+mkRequest' ii1 settings addr ref (reqths,reqvt) (bodylen,body) = return (req,ii)
45 !req = Request {
45 !req = Request {
46 requestMethod = colonMethod
46 requestMethod = colonMethod
@@ -54,7 +54,7 @@ mkRequest' ii1 settings addr ref (reqths,reqvt) body = return (req,ii)
54 , remoteHost = addr
54 , remoteHost = addr
55 , requestBody = body
55 , requestBody = body
56 , vault = vaultValue
56 , vault = vaultValue
57− , requestBodyLength = ChunkedBody -- fixme
57+ , requestBodyLength = maybe ChunkedBody (KnownLength . fromIntegral) bodylen
58 , requestHeaderHost = mHost <|> mAuth
58 , requestHeaderHost = mHost <|> mAuth
59 , requestHeaderRange = mRange
59 , requestHeaderRange = mRange
60 , requestHeaderReferer = mReferer
60 , requestHeaderReferer = mReferer