Go to main content

man pages section 3: Basic Library Functions

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

sctp_getladdrs(3C)

Name

sctp_getladdrs, sctp_freeladdrs - returns all locally bound addresses on an SCTP socket

Synopsis

cc [ flag... ] file... –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

bind(3C), sctp_freepaddrs(3C), sctp_getpaddrs(3C), socket(3C), in.h(3HEAD), libsctp(3LIB), inet(4P), inet6(4P), ip(4P), ip6(4P), sctp(4P), attributes(7)