@@ -1,7 +1,11 @@
11{-# LANGUAGE OverloadedStrings #-}
22{-# LANGUAGE RecordWildCards #-}
33
4−module Network.Wai.Handler.Warp.HTTP2 (isHTTP2, http2) where
4+module Network.Wai.Handler.Warp.HTTP2
5+ ( isHTTP2
6+ , http2
7+ , promoteApplication
8+ ) where
59
610import Control.Concurrent (forkIO, killThread)
711import qualified Control.Exception as E
@@ -11,6 +15,7 @@ import Data.ByteString (ByteString)
1115import Network.HTTP2
1216import Network.Socket (SockAddr)
1317
18+import Network.Wai (Application)
1419import Network.Wai.HTTP2 (Http2Application)
1520import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
1621import Network.Wai.Handler.Warp.HTTP2.Manager
@@ -66,3 +71,8 @@ goaway :: Connection -> ErrorCodeId -> ByteString -> IO ()
6671goaway Connection{..} etype debugmsg = connSendAll bytestream
6772 where
6873 bytestream = goawayFrame 0 etype debugmsg
74+
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