{-# LANGUAGE StrictData #-}

module Network.QUIC.Common where

import qualified Network.Socket as NS

import Network.QUIC.Connection
import Network.QUIC.Parameters
import Network.QUIC.Types

----------------------------------------------------------------

data ConnRes = ConnRes Connection AuthCIDs ~(IO ())

connResConnection :: ConnRes -> Connection
connResConnection :: ConnRes -> Connection
connResConnection (ConnRes Connection
conn AuthCIDs
_ IO ()
_) = Connection
conn

defaultPacketSize :: NS.SockAddr -> Int
defaultPacketSize :: SockAddr -> Int
defaultPacketSize NS.SockAddrInet6{} = Int
defaultQUICPacketSizeForIPv6
defaultPacketSize SockAddr
_ = Int
defaultQUICPacketSizeForIPv4

maximumPacketSize :: NS.SockAddr -> Int
maximumPacketSize :: SockAddr -> Int
maximumPacketSize NS.SockAddrInet6{} = Int
1500 forall a. Num a => a -> a -> a
- Int
40 forall a. Num a => a -> a -> a
- Int
8 -- fixme
maximumPacketSize SockAddr
_ = Int
1500 forall a. Num a => a -> a -> a
- Int
20 forall a. Num a => a -> a -> a
- Int
8 -- fixme