@@ -1,7 +1,11 @@
1{-# LANGUAGE OverloadedStrings #-}
1{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE RecordWildCards #-}
2{-# LANGUAGE RecordWildCards #-}
4−module Network.Wai.Handler.Warp.HTTP2 (isHTTP2, http2) where
4+module Network.Wai.Handler.Warp.HTTP2
6import Control.Concurrent (forkIO, killThread)
10import Control.Concurrent (forkIO, killThread)
7import qualified Control.Exception as E
11import qualified Control.Exception as E
@@ -11,6 +15,7 @@ import Data.ByteString (ByteString)
11import Network.HTTP2
15import Network.HTTP2
12import Network.Socket (SockAddr)
16import Network.Socket (SockAddr)
18+import Network.Wai (Application)
14import Network.Wai.HTTP2 (Http2Application)
19import Network.Wai.HTTP2 (Http2Application)
15import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
20import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
16import Network.Wai.Handler.Warp.HTTP2.Manager
21import Network.Wai.Handler.Warp.HTTP2.Manager
@@ -66,3 +71,8 @@ goaway :: Connection -> ErrorCodeId -> ByteString -> IO ()
66goaway Connection{..} etype debugmsg = connSendAll bytestream
71goaway Connection{..} etype debugmsg = connSendAll bytestream
68 bytestream = goawayFrame 0 etype debugmsg
73 bytestream = goawayFrame 0 etype debugmsg
75+-- | Promote a normal WAI 'Application' to an 'Http2Application' by ignoring
76+-- the HTTP/2-specific features.
77+promoteApplication :: Application -> Http2Application
78+promoteApplication app = app