warp 0.4.3.1 → 0.4.4
raw patch · 2 files changed
+16/−5 lines, 2 files
Files
- Network/Wai/Handler/Warp.hs +14/−4
- warp.cabal +2/−1
Network/Wai/Handler/Warp.hs view
@@ -108,6 +108,8 @@ import qualified Paths_warp import Data.Version (showVersion) +import Data.List (delete)+ #if WINDOWS import Control.Concurrent (threadDelay) import qualified Control.Concurrent.MVar as MV@@ -305,7 +307,7 @@ `mappend` spaceBuilder `mappend` copyByteString (H.statusMessage status) `mappend` newlineBuilder- !start' = foldl' responseHeaderToBuilder start (serverHeader : responseHeaders)+ !start' = foldl' responseHeaderToBuilder start (serverHeader responseHeaders) !end = if isChunked' then transferEncodingBuilder else newlineBuilder@@ -336,7 +338,8 @@ isChunked = (==) H.http11 hasBody :: H.Status -> Request -> Bool-hasBody s req = s /= (H.Status 204 "") && requestMethod req /= "HEAD"+hasBody s req = s /= (H.Status 204 "") && s /= H.status304 &&+ H.statusCode s >= 200 && requestMethod req /= "HEAD" sendResponse :: T.Handle -> Request -> Socket -> Response -> IO Bool@@ -577,5 +580,12 @@ man <- T.initialize timeout f man -serverHeader :: (CI.CI H.Ascii, ByteString)-serverHeader = ("Server", B.pack $ "Warp/" ++ showVersion Paths_warp.version)+serverHeader :: H.RequestHeaders -> H.RequestHeaders+serverHeader hdrs = case lookup key hdrs of+ Nothing -> server : hdrs+ Just svr -> servers svr : delete (key,svr) hdrs+ where+ key = "Server"+ ver = B.pack $ "Warp/" ++ showVersion Paths_warp.version+ server = (key, ver)+ servers svr = (key, S.concat [svr, " ", ver])
warp.cabal view
@@ -1,5 +1,5 @@ Name: warp-Version: 0.4.3.1+Version: 0.4.4 Synopsis: A fast, light-weight web server for WAI applications. License: BSD3 License-file: LICENSE@@ -10,6 +10,7 @@ Build-Type: Simple Cabal-Version: >=1.6 Stability: Stable+Description: The premier WAI handler. For more information, see <http://steve.vinoski.net/blog/2011/05/01/warp-a-haskell-web-server/>. flag network-bytestring Default: False