quic-0.2.4: Network/QUIC/Common.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE StrictData #-}
module Network.QUIC.Common where
import qualified Network.Socket as NS
import Control.Concurrent
import GHC.Conc.Sync
import Network.QUIC.Connection
import Network.QUIC.Parameters
import Network.QUIC.Types
----------------------------------------------------------------
data ConnRes = ConnRes Connection AuthCIDs ~(IO ())
connResConnection :: ConnRes -> Connection
connResConnection (ConnRes conn _ _) = conn
defaultPacketSize :: NS.SockAddr -> Int
defaultPacketSize NS.SockAddrInet6{} = defaultQUICPacketSizeForIPv6
defaultPacketSize _ = defaultQUICPacketSizeForIPv4
maximumPacketSize :: NS.SockAddr -> Int
maximumPacketSize NS.SockAddrInet6{} = 1500 - 40 - 8 -- fixme
maximumPacketSize _ = 1500 - 20 - 8 -- fixme
labelMe :: String -> IO ()
#if MIN_VERSION_base(4,18,0)
labelMe name = do
tid <- myThreadId
mlabel <- threadLabel tid
case mlabel of
Nothing -> labelThread tid name
Just _ -> return ()
#else
labelMe name = do
tid <- myThreadId
labelThread tid name
#endif