xref: /illumos-gate/usr/src/man/man3socket/sctp_getladdrs.3socket (revision 2c5ec7a875dcd76853e6618614e990f1e8cdd56d)
te
Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
SCTP_GETLADDRS 3SOCKET "Jan 23, 2008"
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(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Committed
MT-Level Safe
SEE ALSO

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