{-# 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 -> 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 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
40 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
8
maximumPacketSize SockAddr
_ = Int
1500 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
20 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
8
labelMe :: String -> IO ()
#if MIN_VERSION_base(4,18,0)
labelMe :: String -> IO ()
labelMe String
name = do
ThreadId
tid <- IO ThreadId
myThreadId
Maybe String
mlabel <- ThreadId -> IO (Maybe String)
threadLabel ThreadId
tid
case Maybe String
mlabel of
Maybe String
Nothing -> ThreadId -> String -> IO ()
labelThread ThreadId
tid String
name
Just String
_ -> () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#else
labelMe name = do
tid <- myThreadId
labelThread tid name
#endif