on master help sign in
Remove the ResponseRaw constructor of HTTP2 Response
f4d28c7Andrew Pritchard
wai/Network/Wai/HTTP2.hs+3−4
@@ -7,7 +7,6 @@ module Network.Wai.HTTP2
7 ) where
7 ) where
8
8
9import Blaze.ByteString.Builder (Builder)
9import Blaze.ByteString.Builder (Builder)
10−import qualified Data.ByteString as B
11import qualified Network.HTTP.Types as H
10import qualified Network.HTTP.Types as H
12
11
13import Network.Wai.Internal (Request, FilePart)
12import Network.Wai.Internal (Request, FilePart)
@@ -25,14 +24,14 @@ data Response
25 = ResponseFile H.Status H.ResponseHeaders FilePath (Maybe FilePart)
24 = ResponseFile H.Status H.ResponseHeaders FilePath (Maybe FilePart)
26 | ResponseBuilder H.Status H.ResponseHeaders Builder
25 | ResponseBuilder H.Status H.ResponseHeaders Builder
27 | ResponseStream H.Status H.ResponseHeaders StreamingBody
26 | ResponseStream H.Status H.ResponseHeaders StreamingBody
28− | ResponseRaw (IO B.ByteString -> (B.ByteString -> IO ()) -> IO ()) Response
29
27
30responseStatus :: Response -> H.Status
28responseStatus :: Response -> H.Status
31responseStatus (ResponseFile s _ _ _) = s
29responseStatus (ResponseFile s _ _ _) = s
32responseStatus (ResponseBuilder s _ _) = s
30responseStatus (ResponseBuilder s _ _) = s
33responseStatus (ResponseStream s _ _) = s
31responseStatus (ResponseStream s _ _) = s
34−responseStatus (ResponseRaw _ res) = responseStatus res
35
32
36responseHeaders :: Response -> H.ResponseHeaders
33responseHeaders :: Response -> H.ResponseHeaders
37−responseHeaders _ = []
34+responseHeaders (ResponseFile _ h _ _) = h
35+responseHeaders (ResponseBuilder _ h _) = h
36+responseHeaders (ResponseStream _ h _) = h
38
37
warp/Network/Wai/Handler/Warp/HTTP2.hs+4−1
@@ -85,4 +85,7 @@ promoteResponse :: Response -> H2.Response
85promoteResponse (ResponseFile a b c d) = H2.ResponseFile a b c d
85promoteResponse (ResponseFile a b c d) = H2.ResponseFile a b c d
86promoteResponse (ResponseBuilder a b c) = H2.ResponseBuilder a b c
86promoteResponse (ResponseBuilder a b c) = H2.ResponseBuilder a b c
87promoteResponse (ResponseStream a b c) = H2.ResponseStream a b c
87promoteResponse (ResponseStream a b c) = H2.ResponseStream a b c
88−promoteResponse (ResponseRaw a b) = H2.ResponseRaw a (promoteResponse b)
88+promoteResponse (ResponseRaw _ b) =
89+ -- There is no way to take over an HTTP/2 connection, so always serve the
90+ -- backup response.
91+ promoteResponse b