on master help sign in
Change "Http2" to "HTTP2" globally
60518bdAndrew Pritchard
wai/Network/Wai/HTTP2.hs+2−2
@@ -1,6 +1,6 @@
1{-# LANGUAGE OverloadedStrings, RankNTypes #-}
1{-# LANGUAGE OverloadedStrings, RankNTypes #-}
2module Network.Wai.HTTP2
2module Network.Wai.HTTP2
3− ( Http2Application
3+ ( HTTP2Application
4 , PushPromise(..)
4 , PushPromise(..)
5 , RespondFunc
5 , RespondFunc
6 , Responder
6 , Responder
@@ -30,7 +30,7 @@ data PushPromise = PushPromise
30 }
30 }
31
31
32-- | The HTTP\/2-aware equivalent of 'Network.Wai.Application'.
32-- | The HTTP\/2-aware equivalent of 'Network.Wai.Application'.
33−type Http2Application = Request -> PushFunc -> Responder
33+type HTTP2Application = Request -> PushFunc -> Responder
34
34
35type Body a = (Builder -> IO ()) -> IO () -> IO a
35type Body a = (Builder -> IO ()) -> IO () -> IO a
36
36
warp-tls/Network/Wai/Handler/WarpTLS.hs+8−8
@@ -35,8 +35,8 @@ module Network.Wai.Handler.WarpTLS (
35 -- * Runner
35 -- * Runner
36 , runTLS
36 , runTLS
37 , runTLSSocket
37 , runTLSSocket
38− , runHttp2TLS
38+ , runHTTP2TLS
39− , runHttp2TLSSocket
39+ , runHTTP2TLSSocket
40 -- * Exception
40 -- * Exception
41 , WarpTLSException (..)
41 , WarpTLSException (..)
42 ) where
42 ) where
@@ -59,7 +59,7 @@ import Network.Socket.ByteString (sendAll)
59import qualified Network.TLS as TLS
59import qualified Network.TLS as TLS
60import qualified Network.TLS.Extra as TLSExtra
60import qualified Network.TLS.Extra as TLSExtra
61import Network.Wai (Application)
61import Network.Wai (Application)
62−import Network.Wai.HTTP2 (Http2Application)
62+import Network.Wai.HTTP2 (HTTP2Application)
63import Network.Wai.Handler.Warp
63import Network.Wai.Handler.Warp
64import Network.Wai.Handler.Warp.Internal
64import Network.Wai.Handler.Warp.Internal
65import System.IO.Error (isEOFError)
65import System.IO.Error (isEOFError)
@@ -220,7 +220,7 @@ tlsSettingsChainMemory cert chainCerts key = defaultTlsSettings
220
220
221----------------------------------------------------------------
221----------------------------------------------------------------
222
222
223−-- Composition over two arguments at once; used for runHttp2\*.
223+-- Composition over two arguments at once; used for runHTTP2\*.
224(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
224(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
225f .: g = curry $ f . uncurry g
225f .: g = curry $ f . uncurry g
226
226
@@ -228,8 +228,8 @@ f .: g = curry $ f . uncurry g
228runTLS :: TLSSettings -> Settings -> Application -> IO ()
228runTLS :: TLSSettings -> Settings -> Application -> IO ()
229runTLS tset set = runServeTLS tset set . serveDefault
229runTLS tset set = runServeTLS tset set . serveDefault
230
230
231−runHttp2TLS :: TLSSettings -> Settings -> Http2Application -> Application -> IO ()
231+runHTTP2TLS :: TLSSettings -> Settings -> HTTP2Application -> Application -> IO ()
232−runHttp2TLS tset set = runServeTLS tset set .: serveHttp2
232+runHTTP2TLS tset set = runServeTLS tset set .: serveHTTP2
233
233
234runServeTLS :: TLSSettings -> Settings -> ServeConnection -> IO ()
234runServeTLS :: TLSSettings -> Settings -> ServeConnection -> IO ()
235runServeTLS tset set serve = withSocketsDo $
235runServeTLS tset set serve = withSocketsDo $
@@ -247,8 +247,8 @@ runTLSSocket tset set sock = runServeTLSSocket tset set sock . serveDefault
247
247
248-- | Run an HTTP/2-aware server with 'TLSSettings' and 'Settings' using
248-- | Run an HTTP/2-aware server with 'TLSSettings' and 'Settings' using
249-- specified 'Socket'.
249-- specified 'Socket'.
250−runHttp2TLSSocket :: TLSSettings -> Settings -> Socket -> Http2Application -> Application -> IO ()
250+runHTTP2TLSSocket :: TLSSettings -> Settings -> Socket -> HTTP2Application -> Application -> IO ()
251−runHttp2TLSSocket tset set sock = runServeTLSSocket tset set sock .: serveHttp2
251+runHTTP2TLSSocket tset set sock = runServeTLSSocket tset set sock .: serveHTTP2
252
252
253runServeTLSSocket :: TLSSettings -> Settings -> Socket -> ServeConnection -> IO ()
253runServeTLSSocket :: TLSSettings -> Settings -> Socket -> ServeConnection -> IO ()
254runServeTLSSocket tlsset@TLSSettings{..} set sock serve = do
254runServeTLSSocket tlsset@TLSSettings{..} set sock serve = do
warp/Network/Wai/Handler/Warp.hs+4−4
@@ -49,10 +49,10 @@ module Network.Wai.Handler.Warp (
49 -- 'Application' to be used for HTTP\/1.1 and HTTP\/1 connections. These
49 -- 'Application' to be used for HTTP\/1.1 and HTTP\/1 connections. These
50 -- are only needed if your application needs access to HTTP\/2-specific
50 -- are only needed if your application needs access to HTTP\/2-specific
51 -- features such as trailers or pushed streams.
51 -- features such as trailers or pushed streams.
52− , runHttp2
52+ , runHTTP2
53− , runHttp2Env
53+ , runHTTP2Env
54− , runHttp2Settings
54+ , runHTTP2Settings
55− , runHttp2SettingsSocket
55+ , runHTTP2SettingsSocket
56 -- * Settings
56 -- * Settings
57 , Settings
57 , Settings
58 , defaultSettings
58 , defaultSettings
warp/Network/Wai/Handler/Warp/HTTP2.hs+4−4
@@ -17,7 +17,7 @@ import Network.HTTP2
17import Network.Socket (SockAddr)
17import Network.Socket (SockAddr)
18
18
19import Network.Wai (Application, responseToStream)
19import Network.Wai (Application, responseToStream)
20−import Network.Wai.HTTP2 (Http2Application)
20+import Network.Wai.HTTP2 (HTTP2Application)
21import Network.Wai.Internal (ResponseReceived(..))
21import Network.Wai.Internal (ResponseReceived(..))
22import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
22import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
23import Network.Wai.Handler.Warp.HTTP2.Manager
23import Network.Wai.Handler.Warp.HTTP2.Manager
@@ -31,7 +31,7 @@ import Network.Wai.Handler.Warp.Types
31
31
32----------------------------------------------------------------
32----------------------------------------------------------------
33
33
34−http2 :: Connection -> InternalInfo -> SockAddr -> Transport -> S.Settings -> (BufSize -> IO ByteString) -> Http2Application -> IO ()
34+http2 :: Connection -> InternalInfo -> SockAddr -> Transport -> S.Settings -> (BufSize -> IO ByteString) -> HTTP2Application -> IO ()
35http2 conn ii addr transport settings readN app = do
35http2 conn ii addr transport settings readN app = do
36 checkTLS
36 checkTLS
37 ok <- checkPreface
37 ok <- checkPreface
@@ -74,9 +74,9 @@ goaway Connection{..} etype debugmsg = connSendAll bytestream
74 where
74 where
75 bytestream = goawayFrame 0 etype debugmsg
75 bytestream = goawayFrame 0 etype debugmsg
76
76
77−-- | Promote a normal WAI 'Application' to an 'Http2Application' by ignoring
77+-- | Promote a normal WAI 'Application' to an 'HTTP2Application' by ignoring
78-- the HTTP/2-specific features.
78-- the HTTP/2-specific features.
79−promoteApplication :: Application -> Http2Application
79+promoteApplication :: Application -> HTTP2Application
80promoteApplication app req _ respond = [] <$ app req respond'
80promoteApplication app req _ respond = [] <$ app req respond'
81 where
81 where
82 respond' r = ResponseReceived <$ (withBody $ respond s h)
82 respond' r = ResponseReceived <$ (withBody $ respond s h)
warp/Network/Wai/Handler/Warp/HTTP2/Worker.hs+4−4
@@ -27,20 +27,20 @@ import Network.Wai.Handler.Warp.HTTP2.EncodeFrame
27import Network.Wai.Handler.Warp.HTTP2.Manager
27import Network.Wai.Handler.Warp.HTTP2.Manager
28import Network.Wai.Handler.Warp.HTTP2.Types
28import Network.Wai.Handler.Warp.HTTP2.Types
29import Network.Wai.Handler.Warp.IORef
29import Network.Wai.Handler.Warp.IORef
30−import Network.Wai.HTTP2 (Http2Application, PushPromise, Responder, RespondFunc)
30+import Network.Wai.HTTP2 (HTTP2Application, PushPromise, Responder, RespondFunc)
31import qualified Network.Wai.Handler.Warp.Settings as S
31import qualified Network.Wai.Handler.Warp.Settings as S
32import qualified Network.Wai.Handler.Warp.Timeout as T
32import qualified Network.Wai.Handler.Warp.Timeout as T
33
33
34----------------------------------------------------------------
34----------------------------------------------------------------
35
35
36−-- | An 'Http2Application' takes a 'RespondFunc'; this type implements that by
36+-- | An 'HTTP2Application' takes a 'RespondFunc'; this type implements that by
37-- currying some internal arguments.
37-- currying some internal arguments.
38--
38--
39-- This is the argument to a 'Responder'.
39-- This is the argument to a 'Responder'.
40type Respond = IO () -> Stream -> TBQueue Sequence -> RespondFunc
40type Respond = IO () -> Stream -> TBQueue Sequence -> RespondFunc
41
41
42-- | This function is passed to workers.
42-- | This function is passed to workers.
43−-- They also pass responses from 'Http2Application's to this function.
43+-- They also pass responses from 'HTTP2Application's to this function.
44-- This function enqueues commands for the HTTP/2 sender.
44-- This function enqueues commands for the HTTP/2 sender.
45response :: Context -> Manager -> ThreadContinue -> Respond
45response :: Context -> Manager -> ThreadContinue -> Respond
46response ctx mgr tconf tickle strm sq s h strmbdy = do
46response ctx mgr tconf tickle strm sq s h strmbdy = do
@@ -125,7 +125,7 @@ instance Exception Break
125worker :: Context
125worker :: Context
126 -> S.Settings
126 -> S.Settings
127 -> T.Manager
127 -> T.Manager
128− -> Http2Application
128+ -> HTTP2Application
129 -> (ThreadContinue -> Respond)
129 -> (ThreadContinue -> Respond)
130 -> IO ()
130 -> IO ()
131worker ctx@Context{inputQ} set tm app respond = do
131worker ctx@Context{inputQ} set tm app respond = do
warp/Network/Wai/Handler/Warp/Internal.hs+1−1
@@ -19,7 +19,7 @@ module Network.Wai.Handler.Warp.Internal (
19 -- * ServeConnection
19 -- * ServeConnection
20 , ServeConnection
20 , ServeConnection
21 , serveDefault
21 , serveDefault
22− , serveHttp2
22+ , serveHTTP2
23 -- * Connection
23 -- * Connection
24 , Connection (..)
24 , Connection (..)
25 , socketConnection
25 , socketConnection
warp/Network/Wai/Handler/Warp/Run.hs+18−18
@@ -21,7 +21,7 @@ import Network (sClose, Socket)
21import Network.Socket (accept, withSocketsDo, SockAddr(SockAddrInet, SockAddrInet6))
21import Network.Socket (accept, withSocketsDo, SockAddr(SockAddrInet, SockAddrInet6))
22import qualified Network.Socket.ByteString as Sock
22import qualified Network.Socket.ByteString as Sock
23import Network.Wai
23import Network.Wai
24−import Network.Wai.HTTP2 (Http2Application)
24+import Network.Wai.HTTP2 (HTTP2Application)
25import Network.Wai.Handler.Warp.Buffer
25import Network.Wai.Handler.Warp.Buffer
26import Network.Wai.Handler.Warp.Counter
26import Network.Wai.Handler.Warp.Counter
27import qualified Network.Wai.Handler.Warp.Date as D
27import qualified Network.Wai.Handler.Warp.Date as D
@@ -69,7 +69,7 @@ allowInterrupt :: IO ()
69allowInterrupt = unblock $ return ()
69allowInterrupt = unblock $ return ()
70#endif
70#endif
71
71
72−-- Composition over two arguments at once; used for runHttp2\*.
72+-- Composition over two arguments at once; used for runHTTP2\*.
73(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
73(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
74f .: g = curry $ f . uncurry g
74f .: g = curry $ f . uncurry g
75
75
@@ -78,10 +78,10 @@ f .: g = curry $ f . uncurry g
78run :: Port -> Application -> IO ()
78run :: Port -> Application -> IO ()
79run port = runServe port . serveDefault
79run port = runServe port . serveDefault
80
80
81−-- | Serve an 'Http2Application' and an 'Application' together on the given
81+-- | Serve an 'HTTP2Application' and an 'Application' together on the given
82-- port.
82-- port.
83−runHttp2 :: Port -> Http2Application -> Application -> IO ()
83+runHTTP2 :: Port -> HTTP2Application -> Application -> IO ()
84−runHttp2 port = runServe port .: serveHttp2
84+runHTTP2 port = runServe port .: serveHTTP2
85
85
86-- | The generalized form of 'run'.
86-- | The generalized form of 'run'.
87runServe :: Port -> ServeConnection -> IO ()
87runServe :: Port -> ServeConnection -> IO ()
@@ -96,8 +96,8 @@ runEnv :: Port -> Application -> IO ()
96runEnv port = runServeEnv port . serveDefault
96runEnv port = runServeEnv port . serveDefault
97
97
98-- | The HTTP\/2-aware form of 'runEnv'.
98-- | The HTTP\/2-aware form of 'runEnv'.
99−runHttp2Env :: Port -> Http2Application -> Application -> IO ()
99+runHTTP2Env :: Port -> HTTP2Application -> Application -> IO ()
100−runHttp2Env port = runServeEnv port .: serveHttp2
100+runHTTP2Env port = runServeEnv port .: serveHTTP2
101
101
102-- | The generalized form of 'runEnv'.
102-- | The generalized form of 'runEnv'.
103runServeEnv :: Port -> ServeConnection -> IO ()
103runServeEnv :: Port -> ServeConnection -> IO ()
@@ -119,8 +119,8 @@ runSettings :: Settings -> Application -> IO ()
119runSettings set = runServeSettings set . serveDefault
119runSettings set = runServeSettings set . serveDefault
120
120
121-- | The HTTP\/2-aware form of 'runSettings'.
121-- | The HTTP\/2-aware form of 'runSettings'.
122−runHttp2Settings :: Settings -> Http2Application -> Application -> IO ()
122+runHTTP2Settings :: Settings -> HTTP2Application -> Application -> IO ()
123−runHttp2Settings set = runServeSettings set .: serveHttp2
123+runHTTP2Settings set = runServeSettings set .: serveHTTP2
124
124
125-- | The generalized form of 'runSettings'.
125-- | The generalized form of 'runSettings'.
126runServeSettings :: Settings -> ServeConnection -> IO ()
126runServeSettings :: Settings -> ServeConnection -> IO ()
@@ -147,13 +147,13 @@ runSettingsSocket :: Settings -> Socket -> Application -> IO ()
147runSettingsSocket set socket = runServeSettingsSocket set socket . serveDefault
147runSettingsSocket set socket = runServeSettingsSocket set socket . serveDefault
148
148
149-- | The HTTP\/2-aware form of 'runSettingsSocket'.
149-- | The HTTP\/2-aware form of 'runSettingsSocket'.
150−runHttp2SettingsSocket :: Settings
150+runHTTP2SettingsSocket :: Settings
151 -> Socket
151 -> Socket
152− -> Http2Application
152+ -> HTTP2Application
153 -> Application
153 -> Application
154 -> IO ()
154 -> IO ()
155−runHttp2SettingsSocket set socket =
155+runHTTP2SettingsSocket set socket =
156− runServeSettingsSocket set socket .: serveHttp2
156+ runServeSettingsSocket set socket .: serveHTTP2
157
157
158-- | The generalized form of 'runSettingsSocket'.
158-- | The generalized form of 'runSettingsSocket'.
159runServeSettingsSocket :: Settings -> Socket -> ServeConnection -> IO ()
159runServeSettingsSocket :: Settings -> Socket -> ServeConnection -> IO ()
@@ -369,17 +369,17 @@ type ServeConnection = Connection
369
369
370-- Serve an HTTP\/2-aware application, rejecting clients that attempt to use an
370-- Serve an HTTP\/2-aware application, rejecting clients that attempt to use an
371-- older protocol version.
371-- older protocol version.
372−serveHttp2Only :: Http2Application -> ServeConnection
372+serveHTTP2Only :: HTTP2Application -> ServeConnection
373−serveHttp2Only = error "serveHttp2Only not implemented"
373+serveHTTP2Only = error "serveHTTP2Only not implemented"
374
374
375-- Serve an HTTP\/2-unaware Application to a connection over any HTTP version.
375-- Serve an HTTP\/2-unaware Application to a connection over any HTTP version.
376serveDefault :: Application -> ServeConnection
376serveDefault :: Application -> ServeConnection
377−serveDefault = flip serveHttp2 <*> promoteApplication
377+serveDefault = flip serveHTTP2 <*> promoteApplication
378
378
379-- Serve an HTTP\/2-aware application over HTTP\/2 or a backup 'Application'
379-- Serve an HTTP\/2-aware application over HTTP\/2 or a backup 'Application'
380-- over HTTP\/1.1 or HTTP\/1.
380-- over HTTP\/1.1 or HTTP\/1.
381−serveHttp2 :: Http2Application -> Application -> ServeConnection
381+serveHTTP2 :: HTTP2Application -> Application -> ServeConnection
382−serveHttp2 app2 app conn ii origAddr transport settings = do
382+serveHTTP2 app2 app conn ii origAddr transport settings = do
383 -- fixme: Upgrading to HTTP/2 should be supported.
383 -- fixme: Upgrading to HTTP/2 should be supported.
384 (h2,bs) <- if isHTTP2 transport then
384 (h2,bs) <- if isHTTP2 transport then
385 return (True, "")
385 return (True, "")