.\" (C) Copyright Sridhar Samudrala IBM Corp. 2004, 2005. .\" .\" Permission is granted to distribute possibly modified copies .\" of this manual provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" .TH SCTP_PEELOFF 3 2005-10-25 "Linux 2.6" "Linux Programmer's Manual" .SH NAME sctp_peeloff \- Branch off an association into a separate socket. .SH SYNOPSIS .nf .B #include .B #include .B #include .sp .BI "int sctp_peeloff(int " sd ", sctp_assoc_t " assoc_id ); .BI "int sctp_peeloff_flags(int " sd ", sctp_assoc_t " assoc_id ", unsigned " flags ); .fi .SH DESCRIPTION .B sctp_peeloff branches off an existing association .I assoc_id on a one-to-many style socket .I sd into a separate socket. The new socket is a one-to-one style socket. .PP 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. .B 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: .TP .B SOCK_NONBLOCK Specifies that the new socket should not block on io operations. .TP .B SOCK_CLOEXEC Specifies that the new socket should be closed when the owning process calls exec. .SH "RETURN VALUE" On success, the new socket descriptor representing the branched-off asociation is returned. On error, \-1 is returned, and .I errno is set appropriately. .SH ERRORS .TP .B EBADF .I sd is not a valid descriptor. .TP .B EINVAL The assoc id passed is invalid or if the socket is a one-to-one style socket. .TP .B ENOTSOCK Argument is a descriptor for a file, not a socket. .SH NOTES .TP 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. .SH "SEE ALSO" .BR sctp (7) .BR sctp_bindx (3), .BR sctp_connectx (3), .BR sctp_sendmsg (3), .BR sctp_sendv (3), .BR sctp_send (3), .BR sctp_recvmsg (3), .BR sctp_recvv (3), .BR sctp_getpaddrs (3), .BR sctp_getladdrs (3), .BR sctp_opt_info (3),