sctp_connectx(3) [freebsd man page]
SCTP_CONNECTX(3) BSD Library Functions Manual SCTP_CONNECTX(3) NAME
sctp_connectx -- connect an SCTP socket with multiple destination addresses LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <sys/types.h> #include <sys/socket.h> #include <netinet/sctp.h> int sctp_connectx(int sd, struct sockaddr *addrs, int addrcnt, sctp_assoc_t *id); DESCRIPTION
The sctp_connectx() call attempts to initiate an association to a peer SCTP endpoint. The call operates similarly to connect() but it also provides the ability to specify multiple destination addresses for the peer. This allows a fault tolerant method of initiating an associa- tion. When one of the peers addresses is unreachable, the subsequent listed addresses will also be used to set up the association with the peer. The user also needs to consider that any address listed in an sctp_connectx() call is also considered "confirmed". A confirmed address is one in which the SCTP transport will trust is a part of the association and it will not send a confirmation heartbeat to it with a random nonce. If the peer SCTP stack does not list one or more of the provided addresses in its response message then the extra addresses sent in the sctp_connectx() call will be silently discarded from the association. On successful completion the provided id will be filled in with the association identification of the newly forming association. RETURN VALUES
The call returns 0 on success and -1 upon failure. ERRORS
The sctp_connectx() function can return the following errors: [EINVAL] An address listed has an invalid family or no addresses were provided. [E2BIG] The size of the address list exceeds the amount of data provided. [EBADF] The argument s is not a valid descriptor. [ENOTSOCK] The argument s is not a socket. SEE ALSO
connect(2), sctp(4) BSD
June 19, 2007 BSD
Check Out this Related Man Page
sctp_getpaddrs(3SOCKET) Sockets Library Functions sctp_getpaddrs(3SOCKET) NAME
sctp_getpaddrs, sctp_freepaddrs - returns all peer addresses on an SCTP association SYNOPSIS
cc [ flag... ] file... -lsocket -lnsl -lsctp [ library... ] #include <sys/types.h> #include <sys/socket.h> #include <netinet/sctp.h> int sctp_getpaddrs(int sock, sctp_assoc_t id, void **addrs, void sctp_freepaddrs(void *addrs); DESCRIPTION
The sctp_getpaddrs() queries the peer addresses in an SCTP association. The sctp_freepaddrs() function releases resources that are allo- cated 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. ENOTCONN The specified socket is not connected. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ SEE ALSO
bind(3SOCKET), in.h(3HEAD), libsctp(3LIB), sctp_freeladdrs(3SOCKET), sctp_getladdrs(3SOCKET), socket(3SOCKET), inet(7P), inet6(7P), ip(7P), ip6(7P)sctp(7P) SunOS 5.10 26 Feb 2004 sctp_getpaddrs(3SOCKET)