sctp_getladdrs - Returns all locally bound addresses on a socket.
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>
int sctp_getladdrs(int sd, sctp_assoc_t assoc_id,
struct sockaddr **addrs);
void sctp_freeladdrs(struct sockaddr *addrs);
sctp_getladdrs returns all locally bound addresses on a socket. On
return,
addrs will point to a dynamically allocated packed array of
sockaddr structures of the appropriate type for each local address. The
caller should use
sctp_freeladdrs to free the memory. Note that the
in/out parameter
addrs must not be NULL.
If
sd is an IPv4 socket, the addresses returned will be all IPv4
addresses. If
sd is an IPv6 socket, the addresses returned can be a mix
of IPv4 or IPv6 addresses.
For one-to-many style sockets,
id specifies the association to query. For
one-to-one style sockets,
id is ignored.
If the
id field is set to 0, then the locally bound addresses are
returned without regard to any particular association.
sctp_freeladdrs frees all the resources allocated by
sctp_getladdrs
On success,
sctp_getladdrs returns the number of local addresses bound to
the socket. If the socket is unbound, 0 is returned and the value of
*addrs is undefined. On error,
sctp_getladdrs returns -1 and the
value of
*addrs is undefined.
sctp(7) sctp_bindx(3),
sctp_connectx(3),
sctp_sendmsg(3),
sctp_sendv(3),
sctp_send(3),
sctp_recvmsg(3),
sctp_recvv(3),
sctp_peeloff(3),
sctp_getpaddrs(3),
sctp_opt_info(3),