packages feed

quic 0.1.4 → 0.1.5

raw patch · 6 files changed

+37/−33 lines, 6 filesdep ~tls

Dependency ranges changed: tls

Files

ChangeLog.md view
@@ -1,3 +1,8 @@+## 0.1.5++- Catching up "tls" v1.9.0.+- Fixing the timing to set resumption tokens.+ ## 0.1.4  - Fixing the race of socket closure.
Network/QUIC/Client/Run.hs view
@@ -66,13 +66,13 @@                     }               }         setIncompatibleVN conn isICVN -- must be before handshaker+        setToken conn $ resumptionToken $ ccResumption conf         handshaker <- handshakeClient conf' conn myAuthCIDs         let client = do                 if ccUse0RTT conf then                     wait0RTTReady conn                   else                     wait1RTTReady conn-                setToken conn $ resumptionToken $ ccResumption conf                 client0 conn             ldcc = connLDCC conn             supporters = foldr1 concurrently_ [handshaker
Network/QUIC/Handshake.hs view
@@ -86,8 +86,11 @@     convertLevel (CryptApplicationSecret, bs) = return (RTT1Level, bs)  internalError :: String -> TLS.TLSError+#if MIN_VERSION_tls(1,9,0)+internalError msg     = TLS.Error_Protocol msg TLS.InternalError+#else internalError msg     = TLS.Error_Protocol (msg, True, TLS.InternalError)--- unexpectedMessage msg = TLS.Error_Protocol (msg, True, TLS.UnexpectedMessage)+#endif  ---------------------------------------------------------------- @@ -316,4 +319,8 @@ #endif getErrorCause e =     let msg = "unexpected TLS exception: " ++ show e+#if MIN_VERSION_tls(1,9,0)+     in TLS.Error_Protocol msg TLS.InternalError+#else      in TLS.Error_Protocol (msg, True, TLS.InternalError)+#endif
quic.cabal view
@@ -1,6 +1,6 @@ cabal-version:      >=1.10 name:               quic-version:            0.1.4+version:            0.1.5 license:            BSD3 license-file:       LICENSE maintainer:         kazu@iij.ad.jp
test/HandshakeSpec.hs view
@@ -7,7 +7,6 @@ import Network.TLS (HandshakeMode13(..), Group(..)) import qualified Network.TLS as TLS import Test.Hspec-import UnliftIO.Async import UnliftIO.Concurrent import qualified UnliftIO.Exception as E @@ -89,26 +88,19 @@  testHandshake :: ClientConfig -> ServerConfig -> IO () -> HandshakeMode13 -> IO () testHandshake cc sc waitS mode = do-    concurrently_ server client+    mvar <- newEmptyMVar+    E.bracket (forkIO $ server mvar) killThread $ \_ -> client mvar   where-    client = do+    client mvar = do         waitS         C.run cc $ \conn -> do             waitEstablished conn             handshakeMode <$> getConnectionInfo conn `shouldReturn` mode-    server = S.run sc $ \conn -> do+            takeMVar mvar+    server mvar = S.run sc $ \conn -> do         waitEstablished conn         handshakeMode <$> getConnectionInfo conn `shouldReturn` mode-        delayedStop conn--delayedStop :: Connection -> IO ()-delayedStop conn = do-    var <- newEmptyMVar-    _ <- forkIO $ do-        threadDelay 100-        putMVar var ()-    takeMVar var-    stop conn+        putMVar mvar ()  query :: BS.ByteString -> Connection -> IO () query content conn = do@@ -120,14 +112,15 @@  testHandshake2 :: ClientConfig -> ServerConfig -> IO () -> (HandshakeMode13, HandshakeMode13) -> Bool -> IO () testHandshake2 cc1 sc waitS (mode1, mode2) use0RTT = do-    concurrently_ server client+    mvar <- newEmptyMVar+    E.bracket (forkIO $ server mvar) killThread $ \_ -> client mvar   where     runClient cc mode action = C.run cc $ \conn -> do         void $ action conn         handshakeMode <$> getConnectionInfo conn `shouldReturn` mode         threadDelay 50000         getResumptionInfo conn-    client = do+    client mvar = do         waitS         res <- runClient cc1 mode1 $ query "first"         threadDelay 50000@@ -135,27 +128,29 @@                       , ccUse0RTT    = use0RTT                       }         void $ runClient cc2 mode2 $ query "second"-    server = S.run sc serv+        takeMVar mvar+    server mvar = S.run sc serv       where         serv conn = do             s <- acceptStream conn             bs <- recvStream s 1024             sendStream s "bye"             closeStream s-            when (bs == "second") $ do-                delayedStop conn+            when (bs == "second") $  putMVar mvar ()  testHandshake3 :: ClientConfig -> ClientConfig -> ServerConfig -> IO () -> (QUICException -> Bool) -> IO () testHandshake3 cc1 cc2 sc waitS selector = do-    concurrently_ server client+    mvar <- newEmptyMVar+    E.bracket (forkIO $ server mvar) killThread $ \_ -> client mvar   where-    client = do+    client mvar = do         waitS         C.run cc1 (query "first")  `shouldThrow` selector         C.run cc2 (query "second") `shouldReturn` ()-    server = S.run sc $ \conn -> do+        takeMVar mvar+    server mvar = S.run sc $ \conn -> do         s <- acceptStream conn         recvStream s 1024 `shouldReturn` "second"         sendStream s "bye"         closeStream s-        delayedStop conn+        putMVar mvar ()
test/IOSpec.hs view
@@ -5,8 +5,8 @@ import Control.Monad import qualified Data.ByteString as BS import Test.Hspec-import UnliftIO.Async import UnliftIO.Concurrent+import qualified UnliftIO.Exception as E  import Network.QUIC import qualified Network.QUIC.Client as C@@ -97,7 +97,7 @@ testRecvStreamClientStopFirst :: C.ClientConfig -> ServerConfig -> IO () -> IO () testRecvStreamClientStopFirst cc sc waitS = do     mvar <- newEmptyMVar-    void $ concurrently (client mvar) (server mvar)+    E.bracket (forkIO $ server mvar) killThread $ \_ -> client mvar   where     aerr = ApplicationProtocolError 0 @@ -118,12 +118,11 @@         -- verify that client has stopped sending.         assertEndOfStream strm         putMVar mvar ()-        stop conn  testRecvStreamServerStopFirst :: C.ClientConfig -> ServerConfig -> IO () -> IO () testRecvStreamServerStopFirst cc sc waitS = do     mvar <- newEmptyMVar-    void $ concurrently (client mvar) (server mvar)+    E.bracket (forkIO $ server mvar) killThread $ \_ -> client mvar   where     aerr = ApplicationProtocolError 0 @@ -142,12 +141,11 @@         assertEndOfStream strm         resetStream strm aerr         putMVar mvar ()-        stop conn  testSendRecv :: C.ClientConfig -> ServerConfig -> IO () -> Int -> IO () testSendRecv cc sc waitS times = do     mvar <- newEmptyMVar-    void $ concurrently (client mvar) (server mvar)+    E.bracket (forkIO $ server mvar) killThread $ \_ -> client mvar   where     client mvar = do         waitS@@ -162,4 +160,3 @@         consumeBytes strm (10000 * times)         assertEndOfStream strm         putMVar mvar ()-        stop conn