http2 4.1.1 → 4.1.2
raw patch · 4 files changed
+10/−4 lines, 4 files
Files
- ChangeLog.md +6/−0
- Network/HTTP2/Arch/Receiver.hs +1/−1
- Network/HTTP2/Server/Run.hs +2/−2
- http2.cabal +1/−1
ChangeLog.md view
@@ -1,3 +1,9 @@+## 4.1.2++* Removing the race of frameSender and frameReceiver in the server side.+ This fixes the loss of RST_Stream and TLS bad MAC error.+ [#67][https://github.com/kazu-yamamoto/http2/pull/67]+ ## 4.1.1 * Fixing memory-blow-up due to no flow control.
Network/HTTP2/Arch/Receiver.hs view
@@ -76,7 +76,7 @@ | Just e@(StreamErrorIsSent err sid) <- E.fromException se = do let frame = resetFrame err sid enqueueControl controlQ $ CFrames Nothing [frame]- let frame' = goawayFrame sid err "treat a stream error as a connection error"+ let frame' = goawayFrame sid err "closing a connection after sending a stream error" enqueueControl controlQ $ CFrames Nothing [frame'] enqueueControl controlQ $ CFinish e | Just e@(StreamErrorIsReceived err sid) <- E.fromException se = do
Network/HTTP2/Server/Run.hs view
@@ -3,7 +3,7 @@ module Network.HTTP2.Server.Run where -import UnliftIO.Async (race_)+import UnliftIO.Async (concurrently_) import qualified UnliftIO.Exception as E import Imports@@ -33,7 +33,7 @@ replicateM_ 3 $ spawnAction mgr let runReceiver = frameReceiver ctx conf runSender = frameSender ctx conf mgr- race_ runReceiver runSender `E.finally` stop mgr+ concurrently_ runReceiver runSender `E.finally` stop mgr where checkPreface = do preface <- confReadN connectionPrefaceLength
http2.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: http2-version: 4.1.1+version: 4.1.2 license: BSD3 license-file: LICENSE maintainer: Kazu Yamamoto <kazu@iij.ad.jp>