@@ -30,17 +30,17 @@ import Network.Wai.Handler.Warp.Types
3030import Network.Wai.Internal (Request(..))
3131import System.IO.Unsafe (unsafePerformIO)
3232
33−type MkReq = (TokenHeaderList,ValueTable) -> IO ByteString -> IO (Request,InternalInfo)
33+type MkReq = (TokenHeaderList,ValueTable) -> (Maybe Int,IO ByteString) -> IO (Request,InternalInfo)
3434
3535mkRequest :: InternalInfo1 -> S.Settings -> SockAddr -> MkReq
36−mkRequest ii1 settings addr (reqths,reqvt) body = do
36+mkRequest ii1 settings addr (reqths,reqvt) (bodylen,body) = do
3737 ref <- newIORef Nothing
38− mkRequest' ii1 settings addr ref (reqths,reqvt) body
38+ mkRequest' ii1 settings addr ref (reqths,reqvt) (bodylen,body)
3939
4040mkRequest' :: InternalInfo1 -> S.Settings -> SockAddr
4141 -> IORef (Maybe HTTP2Data)
4242 -> MkReq
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)
4444 where
4545 !req = Request {
4646 requestMethod = colonMethod
@@ -54,7 +54,7 @@ mkRequest' ii1 settings addr ref (reqths,reqvt) body = return (req,ii)
5454 , remoteHost = addr
5555 , requestBody = body
5656 , vault = vaultValue
57− , requestBodyLength = ChunkedBody -- fixme
57+ , requestBodyLength = maybe ChunkedBody (KnownLength . fromIntegral) bodylen
5858 , requestHeaderHost = mHost <|> mAuth
5959 , requestHeaderRange = mRange
6060 , requestHeaderReferer = mReferer