packages feed

quic 0.1.3 → 0.1.4

raw patch · 4 files changed

+15/−4 lines, 4 files

Files

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