Description

The sctp_getpaddrs() queries the peer addresses in an SCTP association. The sctp_freepaddrs()
function releases resources that are allocated to hold the addresses.

The sctp_getpaddrs() function returns all the peer addresses in the SCTP association
identified by 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. If sock is a one-to-one style SCTP socket, id is
ignored.

The sctp_freepaddrs() function frees the resources allocated by sctp_getpaddrs(). The addrs parameter
is the array of addresses allocated by sctp_getpaddrs().

Return Values

Upon successful completion, the sctp_getpaddrs() 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_getpaddrs() succeeds unless one of the following conditions exist.

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 association identifier for a one-to-many style STP socket.