5331 want sockaddr(3SOCKET)
[illumos-gate.git] / usr / src / man / man3socket / sctp_getladdrs.3socket
blobf3439217881ac48fd29803f9146e2441f9d5c43d
1 '\" te
2 .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
3 .\" 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.
4 .\" 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.
5 .\" 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]
6 .TH SCTP_GETLADDRS 3SOCKET "Jan 23, 2008"
7 .SH NAME
8 sctp_getladdrs, sctp_freeladdrs \- returns all locally bound addresses on an
9 SCTP socket
10 .SH SYNOPSIS
11 .LP
12 .nf
13 \fBcc\fR [ \fIflag\fR... ] \fIfile\fR... \fB-lsocket\fR \fB -lnsl \fR \fB -lsctp \fR [ \fIlibrary\fR... ]
14 #include <sys/types.h>
15 #include <sys/socket.h>
16 #include <netinet/sctp.h>
18 \fBint\fR \fBsctp_getladdrs\fR(\fBint\fR \fIsock\fR, \fBsctp_assoc_t\fR \fIid\fR, \fBvoid **\fR\fIaddrs\fR);
19 .fi
21 .LP
22 .nf
23 \fBvoid\fR \fBsctp_freeladdrs\fR(\fBvoid *\fR\fIaddrs\fR);
24 .fi
26 .SH DESCRIPTION
27 .LP
28 The \fBsctp_getladdrs()\fR function queries addresses to which an SCTP socket
29 is bound. The \fBsctp_freeladdrs()\fR function releases resources that are
30 allocated to hold the addresses.
31 .sp
32 .LP
33 The \fBsctp_getladdrs()\fR function returns all the locally bound addresses on
34 the SCTP socket \fIsock\fR. On completion \fIaddrs\fR points to a dynamically
35 allocated array of \fBsockaddr_in\fR structures for an Internet Protocol (IPv4)
36 socket or an array of \fBsockaddr_in6\fR structures for an Internet Protocol
37 Version 6 (IPv6) socket. The \fIaddrs\fR parameter must not be \fINULL\fR. For
38 an IPv4 SCTP socket, the addresses returned in the \fBsockaddr_in\fR structures
39 are IPv4 addresses. For an IPv6 SCTP socket, the addresses in the
40 \fBsockaddr_in6\fR structures can be IPv6 addresses or IPv4-mapped IPv6
41 addresses.
42 .sp
43 .LP
44 If \fIsock\fR is a one-to-many style SCTP socket, \fIid\fR specifies the
45 association of interest. A value of \fB0\fR to \fIid\fR returns locally-bound
46 addresses regardless of a particular association. If \fIsock\fR is a one-to-one
47 style SCTP socket, \fIid\fR is ignored.
48 .sp
49 .LP
50 The \fBsctp_freeladdrs()\fR function frees the resources allocated by
51 \fBsctp_getladdrs()\fR. The \fIaddrs\fR parameter is the array of addresses
52 allocated by \fBsctp_getladdrs()\fR.
53 .SH RETURN VALUES
54 .LP
55 Upon successful completion, the \fBsctp_getladdrs()\fR function returns the
56 number of addresses in the \fIaddrs\fR array. Otherwise, the function returns
57 \fB-1\fR and sets \fBerrno\fR to indicate the error.
58 .SH ERRORS
59 .LP
60 The \fBsctp_getladdrs()\fR call fails under the following conditions.
61 .sp
62 .ne 2
63 .na
64 \fB\fBEBADF\fR\fR
65 .ad
66 .RS 12n
67 The \fIsock\fR argument is an invalid file descriptor.
68 .RE
70 .sp
71 .ne 2
72 .na
73 \fB\fBENOTSOCK\fR\fR
74 .ad
75 .RS 12n
76 The \fIsock\fR argument is not a socket.
77 .RE
79 .sp
80 .ne 2
81 .na
82 \fB\fBEINVAL\fR\fR
83 .ad
84 .RS 12n
85 The \fIaddrs\fR argument is \fINULL\fR.
86 .RE
88 .sp
89 .ne 2
90 .na
91 \fB\fBEINVAL\fR\fR
92 .ad
93 .RS 12n
94 The \fIid\fR argument is an invalid socket.
95 .RE
97 .SH ATTRIBUTES
98 .LP
99 See \fBattributes\fR(5) for descriptions of the following attributes:
104 box;
105 c | c
106 l | l .
107 ATTRIBUTE TYPE  ATTRIBUTE VALUE
109 Interface Stability     Committed
111 MT-Level        Safe
114 .SH SEE ALSO
116 \fBbind\fR(3SOCKET), \fBin.h\fR(3HEAD), \fBlibsctp\fR(3LIB),
117 \fBsctp_freepaddrs\fR(3SOCKET), \fBsctp_getpaddrs\fR(3SOCKET),
118 \fBsockaddr\fR(3SOCKET),
119 \fBsocket\fR(3SOCKET), \fBattributes\fR(5), \fBinet\fR(7P), \fBinet6\fR(7P),
120 \fBip\fR(7P), \fBip6\fR(7P), \fBsctp\fR(7P)