| .\" (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 <sys/types.h> |
| .B #include <sys/socket.h> |
| .B #include <netinet/sctp.h> |
| .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), |