sctp_getpaddrs - Returns all peer addresses in an association.
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>
int sctp_getpaddrs(int sd, sctp_assoc_t assoc_id,
struct sockaddr **addrs);
void sctp_freepaddrs(struct sockaddr *addrs);
sctp_getpaddrs returns all peer addresses in an association. On return,
addrs will point to a dynamically allocated packed array of
sockaddr structures of the appropriate type for each address. The
caller should use
sctp_freepaddrs 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.
sctp_freepaddrs frees all the resources allocated by
sctp_getpaddrs.
On success,
sctp_getpaddrs returns the number of peer addresses in the
association. If there is no association on this socket, 0 is returned and the
value of
*addrs is undefined. On error,
sctp_getpaddrs 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_getladdrs(3),
sctp_opt_info(3),