@@ -18,6 +18,7 @@ module Network.Wai.Handler.Warp
1818 ( run
1919 , sendResponse
2020 , parseRequest
21+ , drainRequestBody
2122 ) where
2223
2324import Network.Wai
@@ -81,8 +82,7 @@ serveConnection port app conn remoteHost' = do
8182 where serveConnection' = do
8283 (ilen, env) <- parseRequest port conn remoteHost'
8384 res <- app env
84− remaining <- readIORef ilen
85− _ <- B.hGet conn remaining -- FIXME just skip, don't read
85+ drainRequestBody conn ilen
8686 keepAlive <- sendResponse env (httpVersion env) conn res
8787 hFlush conn
8888 when keepAlive serveConnection'
@@ -93,6 +93,12 @@ serveConnection port app conn remoteHost' = do
9393 Nothing -> ioError e
9494 | otherwise = ioError e
9595
96+drainRequestBody :: Handle -> IORef Int -> IO ()
97+drainRequestBody conn ilen = do
98+ remaining <- readIORef ilen
99+ _ <- B.hGet conn remaining -- FIXME just skip, don't read
100+ return ()
101+
96102parseRequest :: Port -> Handle -> String -> IO (IORef Int, Request)
97103parseRequest port conn remoteHost' = do
98104 headers' <- takeUntilBlank conn id