xref: /freebsd/lib/libc/net/sctp_connectx.3 (revision d8b5fd91b9011a1c21b7389e2dade6b9b1f6e425)
1d8b5fd91SRandall Stewart.\" Copyright (c) 1983, 1991, 1993
2d8b5fd91SRandall Stewart.\"	The Regents of the University of California.  All rights reserved.
3d8b5fd91SRandall Stewart.\"
4d8b5fd91SRandall Stewart.\" Redistribution and use in source and binary forms, with or without
5d8b5fd91SRandall Stewart.\" modification, are permitted provided that the following conditions
6d8b5fd91SRandall Stewart.\" are met:
7d8b5fd91SRandall Stewart.\" 1. Redistributions of source code must retain the above copyright
8d8b5fd91SRandall Stewart.\"    notice, this list of conditions and the following disclaimer.
9d8b5fd91SRandall Stewart.\" 2. Redistributions in binary form must reproduce the above copyright
10d8b5fd91SRandall Stewart.\"    notice, this list of conditions and the following disclaimer in the
11d8b5fd91SRandall Stewart.\"    documentation and/or other materials provided with the distribution.
12d8b5fd91SRandall Stewart.\" 3. All advertising materials mentioning features or use of this software
13d8b5fd91SRandall Stewart.\"    must display the following acknowledgement:
14d8b5fd91SRandall Stewart.\"	This product includes software developed by the University of
15d8b5fd91SRandall Stewart.\"	California, Berkeley and its contributors.
16d8b5fd91SRandall Stewart.\" 4. Neither the name of the University nor the names of its contributors
17d8b5fd91SRandall Stewart.\"    may be used to endorse or promote products derived from this software
18d8b5fd91SRandall Stewart.\"    without specific prior written permission.
19d8b5fd91SRandall Stewart.\"
20d8b5fd91SRandall Stewart.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21d8b5fd91SRandall Stewart.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22d8b5fd91SRandall Stewart.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23d8b5fd91SRandall Stewart.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24d8b5fd91SRandall Stewart.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25d8b5fd91SRandall Stewart.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26d8b5fd91SRandall Stewart.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27d8b5fd91SRandall Stewart.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28d8b5fd91SRandall Stewart.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29d8b5fd91SRandall Stewart.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30d8b5fd91SRandall Stewart.\" SUCH DAMAGE.
31d8b5fd91SRandall Stewart.\"
32d8b5fd91SRandall Stewart.\" $FreeBSD$
33d8b5fd91SRandall Stewart.\"
34d8b5fd91SRandall Stewart.Dd December 15, 2006
35d8b5fd91SRandall Stewart.Dt SCTP_CONNECTX 3
36d8b5fd91SRandall Stewart.Os
37d8b5fd91SRandall Stewart.Sh NAME
38d8b5fd91SRandall Stewart.Nm sctp_connectx
39d8b5fd91SRandall Stewart.Nd connect an sctp socket with multiple destination addresses.
40d8b5fd91SRandall Stewart.Sh LIBRARY
41d8b5fd91SRandall Stewart.Lb libc
42d8b5fd91SRandall Stewart.Sh SYNOPSIS
43d8b5fd91SRandall Stewart.In sys/types.h
44d8b5fd91SRandall Stewart.In sys/socket.h
45d8b5fd91SRandall Stewart.In sys/sctp.h
46d8b5fd91SRandall Stewart.Ft int
47d8b5fd91SRandall Stewart.Fn sctp_connectx "int s" "struct sockaddr *" "int addrcnt"
48d8b5fd91SRandall Stewart.Sh DESCRIPTION
49d8b5fd91SRandall StewartThe
50d8b5fd91SRandall Stewart.Fn sctp_connectx
51d8b5fd91SRandall Stewartcall attempts to initiate an association to a peer SCTP
52d8b5fd91SRandall Stewartendpoint. The call operates similarly to
53d8b5fd91SRandall Stewart.Fn connect
54d8b5fd91SRandall Stewartbut it also provides the ability to specify multiple destination
55d8b5fd91SRandall Stewartaddresses for the peer. This allows a fault tolerant method
56d8b5fd91SRandall Stewartof initiating an association. When one of the peers addresses
57d8b5fd91SRandall Stewartis unreachable, the subsequent listed addresses will also be used
58d8b5fd91SRandall Stewartto setup the association with the peer.
59d8b5fd91SRandall Stewart.Pp
60d8b5fd91SRandall StewartThe user also needs to consider that any address listed in an
61d8b5fd91SRandall Stewart.Fn sctp_connectx
62d8b5fd91SRandall Stewartcall is also consider "confirmed".
63d8b5fd91SRandall StewartA confirmed address is one in
64d8b5fd91SRandall Stewartwhich the SCTP transport will trust is a part of the association
65d8b5fd91SRandall Stewartand it will not send a confirmation heartbeat to it with
66d8b5fd91SRandall Stewarta random nonce.
67d8b5fd91SRandall Stewart.Pp
68d8b5fd91SRandall StewartIf the peer SCTP stack does not list one or more of
69d8b5fd91SRandall Stewartthe provided addresses in its response message then
70d8b5fd91SRandall Stewartthe extra addresses sent in the
71d8b5fd91SRandall Stewart.Fn sctp_connectx
72d8b5fd91SRandall Stewartcall will be silently discarded from the association.
73d8b5fd91SRandall Stewart.Sh RETURN VALUES
74d8b5fd91SRandall StewartThe call returns 0 on success and -1 upon failure.
75d8b5fd91SRandall Stewart.Sh ERRORS
76d8b5fd91SRandall StewartThe
77d8b5fd91SRandall Stewart.Fn sctp_connectx
78d8b5fd91SRandall Stewartcan return the following errors.
79d8b5fd91SRandall Stewart.Bl -tag -width Er
80d8b5fd91SRandall Stewart.It Bq Er EINVAL
81d8b5fd91SRandall StewartAn address listed has an invalid family or no
82d8b5fd91SRandall Stewartaddresses were provided.
83d8b5fd91SRandall Stewart.It Bq Er E2BIG
84d8b5fd91SRandall StewartThe size of the address list exceeds the amount of
85d8b5fd91SRandall Stewartdata provided.
86d8b5fd91SRandall Stewart.It Bq Er EBADF
87d8b5fd91SRandall StewartThe argument
88d8b5fd91SRandall Stewart.Fa s
89d8b5fd91SRandall Stewartis not a valid descriptor.
90d8b5fd91SRandall Stewart.It Bq Er ENOTSOCK
91d8b5fd91SRandall StewartThe argument
92d8b5fd91SRandall Stewart.Fa s
93d8b5fd91SRandall Stewartis not a socket.
94d8b5fd91SRandall Stewart.El
95d8b5fd91SRandall Stewart.Sh SEE ALSO
96d8b5fd91SRandall Stewart.Xr sctp 4 ,
97d8b5fd91SRandall Stewart.Xr connect 2 ,
98d8b5fd91SRandall Stewart
99