sctp_connectx

SCTP_CONNECTX(3)           Linux Programmer's Manual          SCTP_CONNECTX(3)

NAME
       sctp_connectx  - initiate a connection on an SCTP socket using multiple
       destination addresses.

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
       sctp_connectx initiates a connection to a set of  addresses  passed  in
       the  array  addrs  to/from  the  socket  sd.   addrcnt is the number of
       addresses in the array.

       If sd is an IPv4 socket, the addresses passed must be  IPv4  addresses.
       If  sd  is  an  IPv6 socket, the addresses passed can be either IPv4 or
       IPv6 addresses.

       addrs is a pointer to an array of one or more  socket  addresses.  Each
       address  is  contained  in  its appropriate structure(i.e. struct sock-
       addr_in or struct sockaddr_in6). The family of the address type must be
       used to distinguish the address length. The caller specifies the number
       of addresses in the array with addrcnt.

       id is a pointer to the association id and, if provided, will be set  to
       the identifier of the newly created association.

RETURN VALUE
       On success, 0 is returned. On failure, -1 is returned, and errno is set
       appropriately.

ERRORS
       EBADF  sd is not a valid descriptor.

       ENOTSOCK
              sd is a descriptor for a file, not a socket.

       EFAULT Error while copying in or out from the user address space.

       EINVAL Invalid port or address.

       EACCES The address is protected, and the user is not the super-user.

       EISCONN
              The socket is already connected.

       ECONNREFUSED
              No one listening on the remote address.

       ETIMEDOUT
              Timeout while attempting connection. The server may be too  busy
              to  accept new connections. Note that for IP sockets the timeout
              may be very long when syncookies are enabled on the server.

       ENETUNREACH
              Network is unreachable.

       EADDRINUSE
              Local address is already in use.

       EINPROGRESS
              The socket is non-blocking and the  connection  cannot  be  com-
              pleted  immediately.  It is possible to select(2) or poll(2) for
              completion by selecting the socket  for  writing.  After  select
              indicates  writability,  use  getsockopt(2) to read the SO_ERROR
              option at level SOL_SOCKET to  determine  whether  connect  com-
              pleted   successfully   (SO_ERROR  is  zero)  or  unsuccessfully
              (SO_ERROR is one of the usual error codes listed here,  explain-
              ing the reason for the failure).

       EALREADY
              The socket is non-blocking and a previous connection attempt has
              not yet been completed.

       EAGAIN No more free local ports or insufficient entries in the  routing
              cache.  For  PF_INET see the net.ipv4.ip_local_port_range sysctl
              in ip(7) on how to increase the number of local ports.

       EAFNOSUPPORT
              The passed address didn't have the correct address family in its
              sa_family field.

       EACCES, EPERM
              The  user tried to connect to a broadcast address without having
              the socket broadcast flag  enabled  or  the  connection  request
              failed because of a local firewall rule.

SEE ALSO
       sctp(7)  sctp_bindx(3), sctp_sendmsg(3), sctp_send(3), sctp_recvmsg(3),
       sctp_peeloff(3),         sctp_getpaddrs(3),          sctp_getladdrs(3),
       sctp_opt_info(3),

Linux 2.6                         2005-10-25                  SCTP_CONNECTX(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2021 Hurricane Electric. All Rights Reserved.