Struct ConnectedSocket

Source
pub struct ConnectedSocket { /* private fields */ }
Expand description

A structure representing a Connected SCTP socket.

A Connected SCTP Socket is associated with one or more Peer associations (each of which is identified by an Association ID). A Connected SCTP Socket will be created by an Listener when it calls an accept (in the case of One to One style sockets) or upon receiving a SCTP_COMM_UP event in SCTP_ASSOC_CHANGE notification.

It is also possible to peeloff a socket from One to Many listening socket and the peeled socket is an ConnectedSocket.

Implementations§

Source§

impl ConnectedSocket

Source

pub fn from_rawfd(rawfd: RawFd) -> Result<Self>

Creates new ConnectedSocket from a RawFd.

TODO: Remove this from Public API Although, this is available as public API as of now, likely the users are not required to use this. Mostly accept (in the case of One to One Socket to Association) or peeloff (in the case of One to Many Association) would use this API to create new ConnectedSocket.

Source

pub fn shutdown(&self, how: Shutdown) -> Result<()>

Perform a TCP like half close.

Note: however that the semantics for TCP and SCTP half close are different. See section 4.1.7 of RFC 6458 for details.

Source

pub fn sctp_bindx( &self, _addrs: &[SocketAddr], _flags: BindxFlags, ) -> Result<()>

Bind to addresses on the given socket. See Section 9.1 RFC 6458.

For the connected sockets, this feature is optional and hence will always return ENOTSUP(EOPNOTSUP) error.

Source

pub fn sctp_getpaddrs(&self, assoc_id: AssociationId) -> Result<Vec<SocketAddr>>

Get Peer addresses for the association. See Section 9.3 RFC 6458.

Source

pub fn sctp_getladdrs(&self, assoc_id: AssociationId) -> Result<Vec<SocketAddr>>

Get Local addresses for the association. See section 9.5 RFC 6458.

Source

pub async fn sctp_recv(&self) -> Result<NotificationOrData>

Receive Data or Notification from the connected socket.

The internal API used to receive the data is also the API used to receive notifications. This function returns either the notification (which the user should have subscribed for) or the data.

Source

pub async fn sctp_send(&self, data: SendData) -> Result<()>

Send Data and Anciliary data if any on the SCTP Socket.

SCTP supports sending the actual SCTP message together with sending any anciliary data on the SCTP association. The anciliary data is optional.

Source

pub fn sctp_subscribe_event( &self, event: Event, assoc_id: SubscribeEventAssocId, ) -> Result<()>

👎Deprecated since 0.2.2: use sctp_subscribe_events instead.

Subscribe to a given SCTP Event on the given socket. See section 6.2.1 of RFC6458.

SCTP allows receiving notifications about the changes to SCTP associations etc from the user space. For these notification events to be received, this API is used to subsribe for the events while receiving the data on the SCTP Socket.

Source

pub fn sctp_unsubscribe_event( &self, event: Event, assoc_id: SubscribeEventAssocId, ) -> Result<()>

👎Deprecated since 0.2.2: use sctp_unsubscribe_events instead.

Unsubscribe from a given SCTP Event on the given socket. See section 6.2.1 of RFC6458.

See sctp_subscribe_event for further details.

Source

pub fn sctp_subscribe_events( &self, events: &[Event], assoc_id: SubscribeEventAssocId, ) -> Result<()>

Subscribe to SCTP Events. See section 6.2.1 of RFC6458.

SCTP allows receiving notifications about the changes to SCTP associations etc from the user space. For these notification events to be received, this API is used to subsribe for the events while receiving the data on the SCTP Socket.

Source

pub fn sctp_unsubscribe_events( &self, events: &[Event], assoc_id: SubscribeEventAssocId, ) -> Result<()>

Unsubscribe from a given SCTP Event on the given socket. See section 6.2.1 of RFC6458.

See sctp_subscribe_events for further details.

Source

pub fn sctp_request_rcvinfo(&self, on: bool) -> Result<()>

Request to receive RcvInfo ancillary data.

SCTP allows receiving ancillary data about the curent data received on the given socket. This API is used to obtain receive side additional info when the data is to be received.

Source

pub fn sctp_request_nxtinfo(&self, on: bool) -> Result<()>

Request to receive NxtInfo ancillary data.

SCTP allows receiving ancillary data about the curent data received on the given socket. This API is used to obtain information about the next datagram that will be received.

Source

pub fn sctp_get_status(&self, assoc_id: AssociationId) -> Result<ConnStatus>

Get the status of the connection associated with the association ID.

Source

pub fn sctp_set_default_sendinfo(&self, sendinfo: SendInfo) -> Result<()>

Set Default SendInfo values for this socket.

In the [sctp_send] API, an optional SendInfo is present, which can be used to specify the ancillary data along with the payload. Instead, a sender can chose to use this API to set the default SendInfo to be used while sending the data for this ‘connected’ socket. Note: This API is provided only for the ConnectedSocket.

Trait Implementations§

Source§

impl Debug for ConnectedSocket

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for ConnectedSocket

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.