on master help sign in
Including server response header
afaba78Michael
warp/Network/Wai/Handler/Warp.hs+6−1
@@ -105,6 +105,8 @@ import Control.Monad (forever)
105import qualified Network.HTTP.Types as H
105import qualified Network.HTTP.Types as H
106import qualified Data.CaseInsensitive as CI
106import qualified Data.CaseInsensitive as CI
107import System.IO (hPutStrLn, stderr)
107import System.IO (hPutStrLn, stderr)
108+import qualified Paths_warp
109+import Data.Version (showVersion)
108
110
109#if WINDOWS
111#if WINDOWS
110import Control.Concurrent (threadDelay)
112import Control.Concurrent (threadDelay)
@@ -303,7 +305,7 @@ headers !httpversion !status !responseHeaders !isChunked' = {-# SCC "headers" #-
303 `mappend` spaceBuilder
305 `mappend` spaceBuilder
304 `mappend` copyByteString (H.statusMessage status)
306 `mappend` copyByteString (H.statusMessage status)
305 `mappend` newlineBuilder
307 `mappend` newlineBuilder
306− !start' = foldl' responseHeaderToBuilder start responseHeaders
308+ !start' = foldl' responseHeaderToBuilder start (serverHeader : responseHeaders)
307 !end = if isChunked'
309 !end = if isChunked'
308 then transferEncodingBuilder
310 then transferEncodingBuilder
309 else newlineBuilder
311 else newlineBuilder
@@ -574,3 +576,6 @@ withManager timeout f = do
574 -- FIXME when stopManager is available, use it
576 -- FIXME when stopManager is available, use it
575 man <- T.initialize timeout
577 man <- T.initialize timeout
576 f man
578 f man
579+
580+serverHeader :: (CI.CI H.Ascii, ByteString)
581+serverHeader = ("Server", B.pack $ "Warp/" ++ showVersion Paths_warp.version)
warp/warp.cabal+1−1
@@ -1,5 +1,5 @@
1Name: warp
1Name: warp
2−Version: 0.4.3
2+Version: 0.4.3.1
3Synopsis: A fast, light-weight web server for WAI applications.
3Synopsis: A fast, light-weight web server for WAI applications.
4License: BSD3
4License: BSD3
5License-file: LICENSE
5License-file: LICENSE