SCTP_GETLADDRS(3SOCKET) Sockets Library Functions SCTP_GETLADDRS(3SOCKET)
sctp_getladdrs, sctp_freeladdrs - returns all locally bound addresses
on an SCTP socket
cc [ flag... ] file... -lsocket -lnsl -lsctp [ library... ]
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>
int sctp_getladdrs(int sock, sctp_assoc_t id, void **addrs);
void sctp_freeladdrs(void *addrs);
The sctp_getladdrs() function queries addresses to which an SCTP
socket is bound. The sctp_freeladdrs() function releases resources
that are allocated to hold the addresses.
The sctp_getladdrs() function returns all the locally bound addresses
on the SCTP socket sock. On completion addrs points to a dynamically
allocated array of sockaddr_in structures for an Internet Protocol
(IPv4) socket or an array of sockaddr_in6 structures for an Internet
Protocol Version 6 (IPv6) socket. The addrs parameter must not be
NULL. For an IPv4 SCTP socket, the addresses returned in the
sockaddr_in structures are IPv4 addresses. For an IPv6 SCTP socket,
the addresses in the sockaddr_in6 structures can be IPv6 addresses or
IPv4-mapped IPv6 addresses.
If sock is a one-to-many style SCTP socket, id specifies the
association of interest. A value of 0 to id returns locally-bound
addresses regardless of a particular association. If sock is a one-
to-one style SCTP socket, id is ignored.
The sctp_freeladdrs() function frees the resources allocated by
sctp_getladdrs(). The addrs parameter is the array of addresses
allocated by sctp_getladdrs().
Upon successful completion, the sctp_getladdrs() function returns the
number of addresses in the addrs array. Otherwise, the function
returns -1 and sets errno to indicate the error.
The sctp_getladdrs() call fails under the following conditions.
EBADF
The sock argument is an invalid file descriptor.
ENOTSOCK
The sock argument is not a socket.
EINVAL
The addrs argument is NULL.
EINVAL
The id argument is an invalid socket.
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
in.h(3HEAD), libsctp(3LIB), bind(3SOCKET), sctp_freepaddrs(3SOCKET),
sctp_getpaddrs(3SOCKET), sockaddr(3SOCKET), socket(3SOCKET),
inet(4P), inet6(4P), ip(4P), ip6(4P), sctp(4P), attributes(7)
January 23, 2008 SCTP_GETLADDRS(3SOCKET)
NAME
sctp_getladdrs, sctp_freeladdrs - returns all locally bound addresses
on 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_getladdrs(int sock, sctp_assoc_t id, void **addrs);
void sctp_freeladdrs(void *addrs);
DESCRIPTION
The sctp_getladdrs() function queries addresses to which an SCTP
socket is bound. The sctp_freeladdrs() function releases resources
that are allocated to hold the addresses.
The sctp_getladdrs() function returns all the locally bound addresses
on the SCTP socket sock. On completion addrs points to a dynamically
allocated array of sockaddr_in structures for an Internet Protocol
(IPv4) socket or an array of sockaddr_in6 structures for an Internet
Protocol Version 6 (IPv6) socket. The addrs parameter must not be
NULL. For an IPv4 SCTP socket, the addresses returned in the
sockaddr_in structures are IPv4 addresses. For an IPv6 SCTP socket,
the addresses in the sockaddr_in6 structures can be IPv6 addresses or
IPv4-mapped IPv6 addresses.
If sock is a one-to-many style SCTP socket, id specifies the
association of interest. A value of 0 to id returns locally-bound
addresses regardless of a particular association. If sock is a one-
to-one style SCTP socket, id is ignored.
The sctp_freeladdrs() function frees the resources allocated by
sctp_getladdrs(). The addrs parameter is the array of addresses
allocated by sctp_getladdrs().
RETURN VALUES
Upon successful completion, the sctp_getladdrs() function returns the
number of addresses in the addrs array. Otherwise, the function
returns -1 and sets errno to indicate the error.
ERRORS
The sctp_getladdrs() call fails under the following conditions.
EBADF
The sock argument is an invalid file descriptor.
ENOTSOCK
The sock argument is not a socket.
EINVAL
The addrs argument is NULL.
EINVAL
The id argument is an invalid socket.
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), sctp_freepaddrs(3SOCKET),
sctp_getpaddrs(3SOCKET), sockaddr(3SOCKET), socket(3SOCKET),
inet(4P), inet6(4P), ip(4P), ip6(4P), sctp(4P), attributes(7)
January 23, 2008 SCTP_GETLADDRS(3SOCKET)