SCTP_BINDX(3SOCKET) Sockets Library Functions SCTP_BINDX(3SOCKET)
NAME
sctp_bindx - add or remove IP addresses to or from an SCTP socket
SYNOPSIS
cc [
flag... ]
file...
-lsocket -lnsl -lsctp [
library... ]
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>
int sctp_bindx(
int sock,
void *addrs,
int addrcnt,
int flags);
DESCRIPTION
The
sctp_bindx() function adds or removes addresses to or from an
SCTP socket. If
sock is an Internet Protocol Version 4 (IPv4) socket,
addrs should be an array of
sockaddr_in structures containing IPv4
addresses. If
sock is an Internet Protocol Version 6 (IPv6) socket,
addrs should be an array of
sockaddr_in6 structures containing IPv6
or IPv4-mapped IPv6 addresses. The
addrcnt is the number of array
elements in
addrs. The family of the address type is used with
addrcnt to determine the size of the array.
The
flags parameter is a bitmask that indicates whether addresses are
to be added or removed from a socket. The
flags parameter is formed
by bitwise OR of zero or more of the following flags:
SCTP_BINDX_ADD_ADDR Indicates that addresses from
addrs should be
added to the SCTP socket.
SCTP_BINDX_REM_ADDR Indicates that addresses from
addrs should be
removed from the SCTP socket.
These two flags are mutually exclusive. If
flags is formed by a
bitwise OR of both
SCTP_BINDX_ADD_ADDR and
SCTP_BINDX_REM_ADDR, the
sctp_bindx() function will fail.
Prior to calling
sctp_bindx() on an SCTP endpoint, the endpoint
should be bound using
bind(3SOCKET). On a listening socket, a special
INADDR_ANY value for IP or an unspecified address of all zeros for
IPv6 can be used in
addrs to add all IPv4 or IPv6 addresses on the
system to the socket. The
sctp_bindx() function can also be used to
add or remove addresses to or from an established association. In
such a case, messages are exchanged between the SCTP endpoints to
update the address lists for that association if both endpoints
support dynamic address reconfiguration.
RETURN VALUES
Upon successful completion, the
sctp_bindx() function returns
0.
Otherwise, the function returns
-1 and sets
errno to indicate the
error.
ERRORS
The
sctp_bindx() call fails under the following conditions.
EBADF The
sock argument is an invalid file descriptor.
ENOTSOCK The
sock argument is not a socket.
EINVAL One or more of the IPv4 or IPv6 addresses is invalid.
EINVAL The endpoint is not bound.
EINVAL The last address is requested to be removed from an
established association.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
in.h(3HEAD),
libsctp(3LIB),
bind(3SOCKET),
listen(3SOCKET),
sctp_freeladdrs(3SOCKET),
sctp_freepaddrs(3SOCKET),
sctp_getladdrs(3SOCKET),
sctp_getpaddrs(3SOCKET),
sockaddr(3SOCKET),
socket(3SOCKET),
inet(4P),
inet6(4P),
ip(4P),
ip6(4P),
sctp(4P)NOTES
IPv4-mapped addresses are not recommended.
August 22, 2007 SCTP_BINDX(3SOCKET)