@@ -19,6 +19,7 @@ import qualified Data.ByteString.Char8 as B8
19import Data.CaseInsensitive (mk)
19import Data.CaseInsensitive (mk)
20import Data.IORef (IORef, readIORef, newIORef, writeIORef)
20import Data.IORef (IORef, readIORef, newIORef, writeIORef)
21import Data.Maybe (isJust)
21import Data.Maybe (isJust)
22+import qualified Data.Vault.Lazy as Vault
22#if __GLASGOW_HASKELL__ < 709
23#if __GLASGOW_HASKELL__ < 709
23import Data.Monoid (mempty)
24import Data.Monoid (mempty)
@@ -28,10 +29,13 @@ import Network.HTTP.Types (RequestHeaders,hRange)
28import qualified Network.HTTP.Types as H
29import qualified Network.HTTP.Types as H
29import Network.Socket (SockAddr)
30import Network.Socket (SockAddr)
30import Network.Wai
31import Network.Wai
32+import Network.Wai.Internal (Request(..))
31import Network.Wai.Handler.Warp.HTTP2.Types
33import Network.Wai.Handler.Warp.HTTP2.Types
32import Network.Wai.Handler.Warp.ReadInt
34import Network.Wai.Handler.Warp.ReadInt
35+import Network.Wai.Handler.Warp.Request (pauseTimeoutKey, getFileInfoKey)
36+import Network.Wai.Handler.Warp.Types (InternalInfo(..))
33import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath)
37import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath)
34−import Network.Wai.Internal (Request(..))
38+import qualified Network.Wai.Handler.Warp.Timeout as Timeout
36data ValidHeaders = ValidHeaders {
40data ValidHeaders = ValidHeaders {
37 vhMethod :: ByteString
41 vhMethod :: ByteString
@@ -43,8 +47,8 @@ data ValidHeaders = ValidHeaders {
44type MkReq = ValidHeaders -> IO ByteString -> Request
48type MkReq = ValidHeaders -> IO ByteString -> Request
46−mkRequest :: S.Settings -> SockAddr -> MkReq
50+mkRequest :: InternalInfo -> S.Settings -> SockAddr -> MkReq
47−mkRequest settings addr (ValidHeaders m p ma _ hdr) body = req
51+mkRequest ii settings addr (ValidHeaders m p ma _ hdr) body = req
49 (unparsedPath,query) = B8.break (=='?') p
53 (unparsedPath,query) = B8.break (=='?') p
50 path = H.extractPath unparsedPath
54 path = H.extractPath unparsedPath
@@ -61,11 +65,15 @@ mkRequest settings addr (ValidHeaders m p ma _ hdr) body = req
61 , isSecure = True
65 , isSecure = True
62 , remoteHost = addr
66 , remoteHost = addr
63 , requestBody = body
67 , requestBody = body
64− , vault = mempty
68+ , vault = vaultValue
65 , requestBodyLength = ChunkedBody -- fixme
69 , requestBodyLength = ChunkedBody -- fixme
66 , requestHeaderHost = ma
70 , requestHeaderHost = ma
67 , requestHeaderRange = lookup hRange hdr
71 , requestHeaderRange = lookup hRange hdr
74+ vaultValue = Vault.insert pauseTimeoutKey (Timeout.pause th)
75+ $ Vault.insert getFileInfoKey (fileInfo ii)
70----------------------------------------------------------------
78----------------------------------------------------------------