@@ -16,9 +16,10 @@ import Data.ByteString (ByteString)
16import Network.HTTP2
16import Network.HTTP2
17import Network.Socket (SockAddr)
17import Network.Socket (SockAddr)
19−import Network.Wai (Application)
19+import Network.Wai (Application, Response)
20+import qualified Network.Wai.HTTP2 as H2 (Response(..))
20import Network.Wai.HTTP2 (Http2Application)
21import Network.Wai.HTTP2 (Http2Application)
21−import Network.Wai.Internal (ResponseReceived(..))
22+import Network.Wai.Internal (ResponseReceived(..), Response(..))
22import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
23import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
23import Network.Wai.Handler.Warp.HTTP2.Manager
24import Network.Wai.Handler.Warp.HTTP2.Manager
24import Network.Wai.Handler.Warp.HTTP2.Receiver
25import Network.Wai.Handler.Warp.HTTP2.Receiver
@@ -78,4 +79,10 @@ goaway Connection{..} etype debugmsg = connSendAll bytestream
78-- the HTTP/2-specific features.
79-- the HTTP/2-specific features.
79promoteApplication :: Application -> Http2Application
80promoteApplication :: Application -> Http2Application
80promoteApplication app req respond = [] <$ app req respond'
81promoteApplication app req respond = [] <$ app req respond'
81− where respond' x = ResponseReceived <$ respond x
82+ where respond' x = ResponseReceived <$ respond (promoteResponse x)
84+promoteResponse :: Response -> H2.Response
85+promoteResponse (ResponseFile a b c d) = H2.ResponseFile a b c d
86+promoteResponse (ResponseBuilder a b c) = H2.ResponseBuilder a b c
87+promoteResponse (ResponseStream a b c) = H2.ResponseStream a b c
88+promoteResponse (ResponseRaw a b) = H2.ResponseRaw a (promoteResponse b)