sctp_peeloff3
Branch off an association into a separate socket.
Usage
#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);
Overview
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:
SOCK_NONBLOCK-
Specifies that the new socket should not block on io operations.
SOCK_CLOEXEC-
Specifies that the new socket should be closed when the owning process calls exec.
Return value
On success, the new socket descriptor representing the branched-off asociation is returned. On error, -1 is returned, and errno is set appropriately.
Errors
EBADF
|
sd is not a valid descriptor. |
|---|---|
EINVAL
|
The assoc id passed is invalid or if the socket is a one-to-one style socket. |
ENOTSOCK
|
Argument is a descriptor for a file, not a socket. |
Notes
- sctp_peeloff_flags is a linux specific variant of sctp_peeloff. While it will compile on other systems, its use will result in an error return. Portable code should use sctp_peeloff.
Releases
12 releases since Debian 3.1 (Sarge); the text changed 2 times.