quic 0.1.24 → 0.1.25
raw patch · 5 files changed
+33/−6 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Network.QUIC: ConnectionInfo :: Version -> Cipher -> Maybe ByteString -> HandshakeMode13 -> Bool -> SockAddr -> SockAddr -> CID -> CID -> ConnectionInfo
- Network.QUIC: ConnectionStats :: Int -> Int -> ConnectionStats
- Network.QUIC: [alpn] :: ConnectionInfo -> Maybe ByteString
- Network.QUIC: [cipher] :: ConnectionInfo -> Cipher
- Network.QUIC: [handshakeMode] :: ConnectionInfo -> HandshakeMode13
- Network.QUIC: [localCID] :: ConnectionInfo -> CID
- Network.QUIC: [localSockAddr] :: ConnectionInfo -> SockAddr
- Network.QUIC: [remoteCID] :: ConnectionInfo -> CID
- Network.QUIC: [remoteSockAddr] :: ConnectionInfo -> SockAddr
- Network.QUIC: [retry] :: ConnectionInfo -> Bool
- Network.QUIC: [rxBytes] :: ConnectionStats -> Int
- Network.QUIC: [txBytes] :: ConnectionStats -> Int
- Network.QUIC: [version] :: ConnectionInfo -> Version
+ Network.QUIC: alpn :: ConnectionInfo -> Maybe ByteString
+ Network.QUIC: cipher :: ConnectionInfo -> Cipher
+ Network.QUIC: handshakeMode :: ConnectionInfo -> HandshakeMode13
+ Network.QUIC: localCID :: ConnectionInfo -> CID
+ Network.QUIC: localSockAddr :: ConnectionInfo -> SockAddr
+ Network.QUIC: remoteCID :: ConnectionInfo -> CID
+ Network.QUIC: remoteSockAddr :: ConnectionInfo -> SockAddr
+ Network.QUIC: retry :: ConnectionInfo -> Bool
+ Network.QUIC: rxBytes :: ConnectionStats -> Int
+ Network.QUIC: txBytes :: ConnectionStats -> Int
+ Network.QUIC: version :: ConnectionInfo -> Version
+ Network.QUIC.Internal: [scWildcardSocketonly] :: ServerConfig -> Bool
- Network.QUIC.Internal: ServerConfig :: [Version] -> [Cipher] -> [Group] -> Parameters -> (String -> IO ()) -> Maybe FilePath -> Credentials -> Hooks -> ServerHooks -> Bool -> [(IP, PortNumber)] -> Maybe (Version -> [ByteString] -> IO ByteString) -> Bool -> SessionManager -> Maybe FilePath -> Int -> ServerConfig
+ Network.QUIC.Internal: ServerConfig :: [Version] -> [Cipher] -> [Group] -> Parameters -> (String -> IO ()) -> Maybe FilePath -> Credentials -> Hooks -> ServerHooks -> Bool -> [(IP, PortNumber)] -> Maybe (Version -> [ByteString] -> IO ByteString) -> Bool -> SessionManager -> Maybe FilePath -> Int -> Bool -> ServerConfig
Files
- ChangeLog.md +5/−0
- Network/QUIC.hs +13/−2
- Network/QUIC/Config.hs +11/−0
- quic.cabal +1/−1
- util/quic-client.hs +3/−3
ChangeLog.md view
@@ -1,5 +1,10 @@ # ChangeLog +## 0.1.25++* fix syntax error, for GHC 9.2+ [#64](https://github.com/kazu-yamamoto/quic/pull/64)+ ## 0.1.24 * Introducing `onConnectionEstablished` into `Hooks`.
Network/QUIC.hs view
@@ -36,12 +36,23 @@ sendStreamMany, -- * Information- ConnectionInfo (..),+ ConnectionInfo, getConnectionInfo,+ version,+ cipher,+ alpn,+ handshakeMode,+ retry,+ localSockAddr,+ remoteSockAddr,+ localCID,+ remoteCID, -- * Statistics- ConnectionStats (..),+ ConnectionStats, getConnectionStats,+ txBytes,+ rxBytes, -- * Synchronization wait0RTTReady,
Network/QUIC/Config.hs view
@@ -141,6 +141,16 @@ , scDebugLog :: Maybe FilePath , scTicketLifetime :: Int -- ^ A lifetime (in seconds) for TLS session ticket and QUIC token.+ , scWildcardSocketonly :: Bool+ -- ^ If 'True', only wild sockets are used.+ -- Packets are dispatched in Haskell code according to+ -- destination connection ID. This is an overhead however+ -- clinets can make QUIC connections even if intermediate NATs+ -- rebind UDP ports frequently.+ -- Otherwise, connected sockets are also used.+ -- This means that packets are dispatched by a kernel.+ -- But unfortunately, clients cannot make QUIC connections+ -- if intermediate NATs rebind UDP ports frequently. } -- | The default value for server configuration.@@ -164,4 +174,5 @@ , scSessionManager = noSessionManager , scDebugLog = Nothing , scTicketLifetime = 7200+ , scWildcardSocketonly = True }
quic.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: quic-version: 0.1.24+version: 0.1.25 license: BSD3 license-file: LICENSE maintainer: kazu@iij.ad.jp
util/quic-client.hs view
@@ -398,11 +398,11 @@ } printThroughput :: UnixTime -> UnixTime -> ConnectionStats -> IO ()-printThroughput t1 t2 ConnectionStats{..} =+printThroughput t1 t2 stats = printf "Throughput %.2f Mbps (%d bytes in %d msecs)\n" bytesPerSeconds- rxBytes+ (rxBytes stats) millisecs where UnixDiffTime (CTime s) u = t2 `diffUnixTime` t1@@ -410,7 +410,7 @@ millisecs = fromIntegral s * 1000 + fromIntegral u `div` 1000 bytesPerSeconds :: Double bytesPerSeconds =- fromIntegral rxBytes+ fromIntegral (rxBytes stats) * (1000 :: Double) * 8 / fromIntegral millisecs