@@ -40,7 +40,7 @@ maxTotalHeaderLength = 50 * 1024
4040----------------------------------------------------------------
4141
4242recvRequest :: Connection
43− -> Timeout.Handle
43+ -> InternalInfo
4444 -> SockAddr -- ^ Peer's address.
4545 -> Source IO ByteString -- ^ Where HTTP request comes from.
4646 -> IO (Request
@@ -50,7 +50,7 @@ recvRequest :: Connection
5050 -- 'IndexedHeader' of HTTP request for internal use, and
5151 -- leftover source (i.e. HTTP pipelining).
5252
53−recvRequest conn timeoutHandle addr src0 = do
53+recvRequest conn ii addr src0 = do
5454 (src, hdrlines) <- src0 $$+ headerLines
5555 (method, rpath, gets, httpversion, hdr) <- parseHeaderLines hdrlines
5656 let idxhdr = indexRequestHeader hdr
@@ -69,11 +69,13 @@ recvRequest conn timeoutHandle addr src0 = do
6969 , requestHeaders = hdr
7070 , isSecure = False
7171 , remoteHost = addr
72− , requestBody = timeoutBody timeoutHandle rbody
72+ , requestBody = timeoutBody th rbody
7373 , vault = mempty
7474 , requestBodyLength = bodyLength
7575 }
7676 return (req, idxhdr, getSource)
77+ where
78+ th = threadHandle ii
7779
7880----------------------------------------------------------------
7981