Hello community, here is the log from the commit of package ghc-warp for openSUSE:Factory checked in at 2017-06-04 01:59:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-warp (Old) and /work/SRC/openSUSE:Factory/.ghc-warp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "ghc-warp" Sun Jun 4 01:59:14 2017 rev:13 rq:499739 version:3.2.12 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-warp/ghc-warp.changes 2017-05-10 20:50:03.814690732 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-warp.new/ghc-warp.changes 2017-06-04 01:59:16.604881851 +0200 @@ -1,0 +2,5 @@ +Thu May 18 09:52:25 UTC 2017 - psimons@suse.com + +- Update to version 3.2.12 with cabal2obs. + +------------------------------------------------------------------- Old: ---- warp-3.2.11.2.tar.gz New: ---- warp-3.2.12.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-warp.spec ++++++ --- /var/tmp/diff_new_pack.3PFi80/_old 2017-06-04 01:59:17.732722517 +0200 +++ /var/tmp/diff_new_pack.3PFi80/_new 2017-06-04 01:59:17.736721952 +0200 @@ -19,7 +19,7 @@ %global pkg_name warp %bcond_with tests Name: ghc-%{pkg_name} -Version: 3.2.11.2 +Version: 3.2.12 Release: 0 Summary: A fast, light-weight web server for WAI applications License: MIT ++++++ warp-3.2.11.2.tar.gz -> warp-3.2.12.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.11.2/ChangeLog.md new/warp-3.2.12/ChangeLog.md --- old/warp-3.2.11.2/ChangeLog.md 2017-04-13 09:50:05.000000000 +0200 +++ new/warp-3.2.12/ChangeLog.md 2017-05-11 05:41:59.000000000 +0200 @@ -1,3 +1,7 @@ +## 3.2.12 + +* If an empty string is set by setServerName, the Server header is not included in response headers [#619](https://github.com/yesodweb/wai/issues/619) + ## 3.2.11.2 * Don't throw exceptions when closing a keep-alive connection diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.11.2/Network/Wai/Handler/Warp/HTTP2/HPACK.hs new/warp-3.2.12/Network/Wai/Handler/Warp/HTTP2/HPACK.hs --- old/warp-3.2.11.2/Network/Wai/Handler/Warp/HTTP2/HPACK.hs 2017-02-23 12:15:39.000000000 +0100 +++ new/warp-3.2.12/Network/Wai/Handler/Warp/HTTP2/HPACK.hs 2017-05-11 05:41:59.000000000 +0200 @@ -7,6 +7,7 @@ , hpackDecodeHeader , just , addNecessaryHeaders + , addHeader -- testing ) where import qualified Control.Exception as E @@ -27,9 +28,12 @@ {-# INLINE addHeader #-} addHeader :: Token -> ByteString -> ValueTable -> TokenHeaderList -> TokenHeaderList +addHeader t "" tbl ths = case getHeaderValue t tbl of + Nothing -> ths + _ -> filter ((/= tokenServer) . fst) ths addHeader t v tbl ths = case getHeaderValue t tbl of Nothing -> (t,v) : ths - Just _ -> ths + _ -> ths addNecessaryHeaders :: Context -> Rspn diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.11.2/Network/Wai/Handler/Warp/Response.hs new/warp-3.2.12/Network/Wai/Handler/Warp/Response.hs --- old/warp-3.2.11.2/Network/Wai/Handler/Warp/Response.hs 2016-11-20 16:19:24.000000000 +0100 +++ new/warp-3.2.12/Network/Wai/Handler/Warp/Response.hs 2017-05-11 05:41:59.000000000 +0200 @@ -11,6 +11,7 @@ , warpVersion , hasBody , replaceHeader + , addServer -- testing ) where #ifndef MIN_VERSION_base @@ -429,7 +430,11 @@ warpVersion :: String warpVersion = showVersion Paths_warp.version +{-# INLINE addServer #-} addServer :: HeaderValue -> IndexedHeader -> H.ResponseHeaders -> H.ResponseHeaders +addServer "" rspidxhdr hdrs = case rspidxhdr ! fromEnum ResServer of + Nothing -> hdrs + _ -> filter ((/= H.hServer) . fst) hdrs addServer serverName rspidxhdr hdrs = case rspidxhdr ! fromEnum ResServer of Nothing -> (H.hServer, serverName) : hdrs _ -> hdrs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.11.2/Network/Wai/Handler/Warp.hs new/warp-3.2.12/Network/Wai/Handler/Warp.hs --- old/warp-3.2.11.2/Network/Wai/Handler/Warp.hs 2017-01-17 12:23:30.000000000 +0100 +++ new/warp-3.2.12/Network/Wai/Handler/Warp.hs 2017-05-11 05:41:59.000000000 +0200 @@ -302,7 +302,10 @@ setInstallShutdownHandler :: (IO () -> IO ()) -> Settings -> Settings setInstallShutdownHandler x y = y { settingsInstallShutdownHandler = x } --- | Default server name if application does not set one. +-- | Default server name to be sent as the \"Server:\" header +-- if an application does not set one. +-- If an empty string is set, the \"Server:\" header is not sent. +-- This is true even if an application set one. -- -- Since 3.0.2 setServerName :: ByteString -> Settings -> Settings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.11.2/test/ResponseHeaderSpec.hs new/warp-3.2.12/test/ResponseHeaderSpec.hs --- old/warp-3.2.11.2/test/ResponseHeaderSpec.hs 2015-11-09 03:12:10.000000000 +0100 +++ new/warp-3.2.12/test/ResponseHeaderSpec.hs 2017-05-11 05:41:59.000000000 +0200 @@ -5,15 +5,63 @@ import Data.ByteString import qualified Network.HTTP.Types as H import Network.Wai.Handler.Warp.ResponseHeader +import Network.Wai.Handler.Warp.Response +import Network.Wai.Handler.Warp.Header +import Network.Wai.Handler.Warp.HTTP2.HPACK +import Network.HPACK +import Network.HPACK.Token import Test.Hspec main :: IO () main = hspec spec spec :: Spec -spec = describe "composeHeader" $ do - it "composes a HTTP header" $ - composeHeader H.http11 H.ok200 headers `shouldReturn` composedHeader +spec = do + describe "composeHeader" $ do + it "composes a HTTP header" $ + composeHeader H.http11 H.ok200 headers `shouldReturn` composedHeader + describe "addServer" $ do + it "adds Server if not exist" $ do + let hdrs = [] + rspidxhdr = indexResponseHeader hdrs + addServer "MyServer" rspidxhdr hdrs `shouldBe` [("Server","MyServer")] + it "does not add Server if exists" $ do + let hdrs = [("Server","MyServer")] + rspidxhdr = indexResponseHeader hdrs + addServer "MyServer2" rspidxhdr hdrs `shouldBe` hdrs + it "does not add Server if empty" $ do + let hdrs = [] + rspidxhdr = indexResponseHeader hdrs + addServer "" rspidxhdr hdrs `shouldBe` hdrs + it "deletes Server " $ do + let hdrs = [("Server","MyServer")] + rspidxhdr = indexResponseHeader hdrs + addServer "" rspidxhdr hdrs `shouldBe` [] + describe "addHeader" $ do + it "adds Server if not exist" $ do + let v = "MyServer" + hdrs = [] + hdrs1 = [("Server",v)] + (thl, vt) <- toHeaderTable hdrs + (thl1, _) <- toHeaderTable hdrs1 + addHeader tokenServer v vt thl `shouldBe` thl1 + it "does not add Server if exists" $ do + let v = "MyServer2" + hdrs = [("Server","MyServer")] + (thl, vt) <- toHeaderTable hdrs + addHeader tokenServer v vt thl `shouldBe` thl + it "does not add Server if empty" $ do + let v = "" + hdrs = [] + (thl, vt) <- toHeaderTable hdrs + addHeader tokenServer v vt thl `shouldBe` thl + it "deletes Server " $ do + let v = "" + hdrs = [("Server","MyServer")] + hdrs1 = [] + (thl, vt) <- toHeaderTable hdrs + (thl1, _) <- toHeaderTable hdrs1 + addHeader tokenServer v vt thl `shouldBe` thl1 headers :: H.ResponseHeaders headers = [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/warp-3.2.11.2/warp.cabal new/warp-3.2.12/warp.cabal --- old/warp-3.2.11.2/warp.cabal 2017-04-13 09:49:31.000000000 +0200 +++ new/warp-3.2.12/warp.cabal 2017-05-11 05:41:59.000000000 +0200 @@ -1,5 +1,5 @@ Name: warp -Version: 3.2.11.2 +Version: 3.2.12 Synopsis: A fast, light-weight web server for WAI applications. License: MIT License-file: LICENSE