-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | STCP socket extensions library.
--
-- This is a binding to the types and operations of libsctp. This
-- library is intended to used in conjunction with the socket
-- library it depends on.
@package socket-sctp
@version 0.2.0.0
module System.Socket.Protocol.SCTP
data SCTP
-- | Receive a message on a SCTP socket.
--
--
-- - Everything that applies to receive is also true for this
-- operation.
-- - The fields of the SendReceiveInfo structure are only filled
-- if dataIOEvent has been enabled trough the Events socket
-- option.
-- - If the supplied buffer size is not sufficient, several consecutive
-- reads are necessary to receive the complete message. The
-- msgEndOfRecord flag is set when the message has been read
-- completely.
--
receiveMessage :: (Family f, Storable (SocketAddress f), SCTPType t) => Socket f t SCTP -> Int -> MessageFlags -> IO (ByteString, SocketAddress f, SendReceiveInfo, MessageFlags)
-- | Send a message on a SCTP socket.
--
--
-- - Everything that applies to send is also true for this
-- operation.
-- - Sending a message is atomic unless the
-- ExplicitEndOfRecord option has been enabled (not yet
-- supported),
--
sendMessage :: (Storable (SocketAddress f)) => Socket f t SCTP -> ByteString -> Maybe (SocketAddress f) -> PayloadProtocolIdentifier -> SendmsgFlags -> StreamNumber -> TimeToLive -> Context -> IO Int
data SendReceiveInfo
SendReceiveInfo :: StreamNumber -> StreamSequenceNumber -> SendReceiveInfoFlags -> PayloadProtocolIdentifier -> Context -> TimeToLive -> TransportSequenceNumber -> CumulativeTransportSequenceNumber -> AssociationIdentifier -> SendReceiveInfo
[sinfoStreamNumber] :: SendReceiveInfo -> StreamNumber
[sinfoStreamSequenceNumber] :: SendReceiveInfo -> StreamSequenceNumber
[sinfoFlags] :: SendReceiveInfo -> SendReceiveInfoFlags
[sinfoPayloadProtocolIdentifier] :: SendReceiveInfo -> PayloadProtocolIdentifier
[sinfoContext] :: SendReceiveInfo -> Context
[sinfoTimeToLive] :: SendReceiveInfo -> TimeToLive
[sinfoTransportSequenceNumber] :: SendReceiveInfo -> TransportSequenceNumber
[sinfoCumulativeTransportSequenceNumber] :: SendReceiveInfo -> CumulativeTransportSequenceNumber
[sinfoAssociationIdentifier] :: SendReceiveInfo -> AssociationIdentifier
newtype StreamNumber
StreamNumber :: Word16 -> StreamNumber
newtype StreamSequenceNumber
StreamSequenceNumber :: Word16 -> StreamSequenceNumber
newtype PayloadProtocolIdentifier
PayloadProtocolIdentifier :: Word32 -> PayloadProtocolIdentifier
newtype Context
Context :: Word32 -> Context
newtype TimeToLive
TimeToLive :: Word32 -> TimeToLive
newtype TransportSequenceNumber
TransportSequenceNumber :: Word32 -> TransportSequenceNumber
newtype CumulativeTransportSequenceNumber
CumulativeTransportSequenceNumber :: Word32 -> CumulativeTransportSequenceNumber
newtype AssociationIdentifier
AssociationIdentifier :: Word32 -> AssociationIdentifier
newtype SendmsgFlags
SendmsgFlags :: Word32 -> SendmsgFlags
unorderedSendmsg :: SendmsgFlags
newtype SendReceiveInfoFlags
SendReceiveInfoFlags :: Word16 -> SendReceiveInfoFlags
unordered :: SendReceiveInfoFlags
addressOverride :: SendReceiveInfoFlags
abort :: SendReceiveInfoFlags
shutdown :: SendReceiveInfoFlags
-- |
-- SCTP_INITMSG
--
data InitMessage
InitMessage :: Word16 -> Word16 -> Word16 -> Word16 -> InitMessage
-- | number of outbound streams
[outboundStreams] :: InitMessage -> Word16
-- | max number of inbound streams
[maxInboundStreams] :: InitMessage -> Word16
-- | max number re-transmissions while establishing an association
[maxAttempts] :: InitMessage -> Word16
-- | time-out in milliseconds for establishing an association
[maxInitTimeout] :: InitMessage -> Word16
-- |
-- SCTP_EVENTS
--
data Events
Events :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Events
[dataIOEvent] :: Events -> Bool
[associationEvent] :: Events -> Bool
[addressEvent] :: Events -> Bool
[sendFailureEvent] :: Events -> Bool
[peerErrorEvent] :: Events -> Bool
[shutdownEvent] :: Events -> Bool
[partialDeliveryEvent] :: Events -> Bool
[adaptationLayerEvent] :: Events -> Bool
[authenticationEvent] :: Events -> Bool
msgNotification :: MessageFlags
data Notification
AssocChangeNotification :: !AssocChange -> Notification
UnsupportedNotification :: !ByteString -> Notification
data AssocId
-- | Parse an SCTP notification.
--
-- This assumes that the buffer contains a complete notification (i.e.
-- MSG_EOR was set on the last chunk it contains), and is thus unsafe.
-- Unfortunately, because of the possibility of partial notifications
-- from a too-small buffer for recvmsg, this must be exposed to users.
unsafeParseNotification :: ByteString -> IO Notification
data AssocChange
AssocChange :: !AcState -> !Word16 -> !Word16 -> !Word16 -> !AssocId -> !ByteString -> AssocChange
[acState] :: AssocChange -> !AcState
[acError] :: AssocChange -> !Word16
[acOutboundStreams] :: AssocChange -> !Word16
[acInboundStreams] :: AssocChange -> !Word16
[acAssocId] :: AssocChange -> !AssocId
[acInfo] :: AssocChange -> !ByteString
data AcState
COMM_UP :: AcState
COMM_LOST :: AcState
RESTART :: AcState
SHUTDOWN_COMP :: AcState
CANT_STR_ASSOC :: AcState
UNKNOWN_AC_STATE :: AcState