packages feed

quic 0.1.23 → 0.1.24

raw patch · 5 files changed

+52/−70 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- 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: 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.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
+ 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

Files

ChangeLog.md view
@@ -1,129 +1,133 @@ # ChangeLog -## 0.1.23+## 0.1.24  * Introducing `onConnectionEstablished` into `Hooks`. * Preparing for tls v2.1. +## 0.1.23++* Accidentally released using a wrong branch. Deprecated on Hackage.+ ## 0.1.22 -- Incresing activeConnectionIdLimit and fix a bug+* Incresing activeConnectionIdLimit and fix a bug  ## 0.1.21 -- Workaround for 0s paddings.-- Another bug fix for packing Fin.+* Workaround for 0s paddings.+* Another bug fix for packing Fin.  ## 0.1.20 -- Bug fix for packing Fin.-- Proper handling for MAX_STREAM_DATA-- util/{client,server} are now called util/{quic-client, quic-server}.-- Renaming two command options for util/quic-client.-- Supporting multiple targets in util/quic-client.+* Bug fix for packing Fin.+* Proper handling for MAX_STREAM_DATA+* util/{client,server} are now called util/{quic-client, quic-server}.+* Renaming two command options for util/quic-client.+* Supporting multiple targets in util/quic-client.  ## 0.1.19 -- Using network-control v0.1.+* Using network-control v0.1.  ## 0.1.18 -- Fixing a buf of 0-RTT where unidirectionalStream waits for SH.-- Introducing ccVersion to start with Version1.+* Fixing a buf of 0-RTT where unidirectionalStream waits for SH.+* Introducing ccVersion to start with Version1.  ## 0.1.17 -- Garding the new_connection_id attack.+* Garding the new_connection_id attack.  ## 0.1.16 -- Using tls v2.0.+* Using tls v2.0.  ## 0.1.15 -- Support customizing ClientHooks and ServerHooks config from tls+* Support customizing ClientHooks and ServerHooks config from tls  ## 0.1.14 -- Using crypto-token v0.1+* Using crypto-token v0.1  ## 0.1.13 -- Garding the path_request attack.+* Garding the path_request attack.  ## 0.1.12 -- Fixing build.+* Fixing build.  ## 0.1.11 -- Rescuing GHC 8.10, 9.0 and 9.2.+* Rescuing GHC 8.10, 9.0 and 9.2.  ## 0.1.11 -- Adding possibleMyStreams.+* Adding possibleMyStreams.  ## 0.1.10 -- Setting proper upper boundaries for the dependencies+* Setting proper upper boundaries for the dependencies  ## 0.1.9 -- Using the network-control package.-- Rate control for some frames.-- Announcing MaxStreams correctly.+* Using the network-control package.+* Rate control for some frames.+* Announcing MaxStreams correctly.  ## 0.1.8 -- Announcing MaxStreams properly.-- Terminating a connection if the peer violates flow controls.+* Announcing MaxStreams properly.+* Terminating a connection if the peer violates flow controls.  ## 0.1.7 -- Using System.Timeout.timeout.+* Using System.Timeout.timeout.  ## 0.1.6 -- Fixing the race condition of `timeout`.+* Fixing the race condition of `timeout`.  ## 0.1.5 -- Catching up "tls" v1.9.0.-- Fixing the timing to set resumption tokens.+* Catching up "tls" v1.9.0.+* Fixing the timing to set resumption tokens.  ## 0.1.4 -- Fixing the race of socket closure.+* Fixing the race of socket closure.  ## 0.1.3 -- Supporting `tls` v1.8.0.+* Supporting `tls` v1.8.0.  ## 0.1.2 -- Using "crypton" instead of "cryptonite".+* Using "crypton" instead of "cryptonite".  ## 0.1.1 -- Fix recvStream hanging+* Fix recvStream hanging   [#54](https://github.com/kazu-yamamoto/quic/pull/54)-- Don't use the fusion crypto on Intel if the CPU does not+* Don't use the fusion crypto on Intel if the CPU does not   provides enough features.-- Add cabal flag for fusion support+* Add cabal flag for fusion support   [#53](https://github.com/kazu-yamamoto/quic/pull/53)  ## 0.1.0 -- Supporting QUICv2 and version negotiation.-- Supporting CPUs other than Intel.-- Supporting Windows.-- Using the network-udp package+* Supporting QUICv2 and version negotiation.+* Supporting CPUs other than Intel.+* Supporting Windows.+* Using the network-udp package  ## 0.0.1 -- Making Haskell servers friendly with Chrome+* Making Haskell servers friendly with Chrome   [#20](https://github.com/kazu-yamamoto/quic/pull/20)  ## 0.0.0 -- Initial version.+* Initial version.
Network/QUIC.hs view
@@ -36,23 +36,12 @@     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,16 +141,6 @@     , 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.@@ -174,5 +164,4 @@         , scSessionManager = noSessionManager         , scDebugLog = Nothing         , scTicketLifetime = 7200-        , scWildcardSocketonly = True         }
quic.cabal view
@@ -1,6 +1,6 @@ cabal-version:      >=1.10 name:               quic-version:            0.1.23+version:            0.1.24 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 stats =+printThroughput t1 t2 ConnectionStats{..} =     printf         "Throughput %.2f Mbps (%d bytes in %d msecs)\n"         bytesPerSeconds-        (rxBytes stats)+        rxBytes         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 stats)+        fromIntegral rxBytes             * (1000 :: Double)             * 8             / fromIntegral millisecs