SCTP_PEELOFF(3) Linux Programmer's Manual SCTP_PEELOFF(3)

sctp_peeloff - Branch off an association into a separate socket.

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>

int sctp_peeloff(int sd, sctp_assoc_t assoc_id);
int sctp_peeloff_flags(int sd, sctp_assoc_t assoc_id, unsigned flags);

sctp_peeloff branches off an existing association assoc_id on a one-to-many style socket sd into a separate socket. The new socket is a one-to-one style socket.

This is particularly desirable when, for instance, the application wishes to have a number of sporadic message senders/receivers remain under the original one-to-many style socket, but branch off those assocations carrying high volume data traffic into their own separate socket descriptors.

sctp_peeloff_flags is a variant of sctp_peeloff, in which flags describing the behavior of the newly peeled off socket can be specified. Currently the supported flags are:

Specifies that the new socket should not block on io operations.
Specifies that the new socket should be closed when the owning process calls exec.

On success, the new socket descriptor representing the branched-off asociation is returned. On error, -1 is returned, and errno is set appropriately.

sd is not a valid descriptor.
The assoc id passed is invalid or if the socket is a one-to-one style socket.
Argument is a descriptor for a file, not a socket.

sctp(7) sctp_bindx(3), sctp_connectx(3), sctp_sendmsg(3), sctp_sendv(3), sctp_send(3), sctp_recvmsg(3), sctp_recvv(3), sctp_getpaddrs(3), sctp_getladdrs(3), sctp_opt_info(3),

2005-10-25 Linux 2.6