quic 0.1.3 → 0.1.4
raw patch · 4 files changed
+15/−4 lines, 4 files
Files
- ChangeLog.md +4/−0
- Network/QUIC/Closer.hs +10/−2
- Network/QUIC/Server/Run.hs +0/−1
- quic.cabal +1/−1
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.1.4++- Fixing the race of socket closure.+ ## 0.1.3 - Supporting `tls` v1.8.0.
Network/QUIC/Closer.hs view
@@ -13,6 +13,7 @@ import Network.QUIC.Connection import Network.QUIC.Connector import Network.QUIC.Imports+import Network.QUIC.Logger import Network.QUIC.Packet import Network.QUIC.Recovery import Network.QUIC.Sender@@ -45,12 +46,19 @@ recvBuf <- mallocBytes bufsiz siz <- encodeCC conn (SizedBuffer sendBuf bufsiz) frame us <- getSocket conn- let clos = UDP.close us+ let clos = do+ UDP.close us+ -- This is just in case.+ -- UDP.close never throw exceptions.+ getSocket conn >>= UDP.close send = UDP.sendBuf us sendBuf siz recv = UDP.recvBuf us recvBuf bufsiz hook = onCloseCompleted $ connHooks conn pto <- getPTO ldcc- void $ forkFinally (closer conn pto send recv hook) $ \_ -> do+ void $ forkFinally (closer conn pto send recv hook) $ \e -> do+ case e of+ Left e' -> connDebugLog conn $ "closure' " <> bhow e'+ Right _ -> return () free sendBuf free recvBuf clos
Network/QUIC/Server/Run.hs view
@@ -106,7 +106,6 @@ #if !defined(mingw32_HOST_OS) killReaders conn #endif- getSocket conn >>= UDP.close debugLog conn msg = do connDebugLog conn ("runServer: " <> msg) qlogDebug conn $ Debug $ toLogStr msg
quic.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: quic-version: 0.1.3+version: 0.1.4 license: BSD3 license-file: LICENSE maintainer: kazu@iij.ad.jp