SCTP\_BINDX(3) Linux Programmer's Manual SCTP\_BINDX(3)

# [NAME](#NAME)

sctp\_bindx - Add or remove bind addresses on a socket.

# [SYNOPSIS](#SYNOPSIS)

```
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>

int sctp_bindx(int sd, struct sockaddr * addrs, int addrcnt,
               int flags);
```

# [DESCRIPTION](#DESCRIPTION)

**sctp\_bindx** adds or removes a set of bind addresses passed in the array *addrs* to/from the socket *sd.* *addrcnt* is the number of addresses in the array and the *flags* paramater indicates if the addresses need to be added or removed.

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 sockaddr\_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.*

The *flags* parameter can be either **SCTP\_BINDX\_ADD\_ADDR** or **SCTP\_BINDX\_REM\_ADDR.** An application can use **SCTP\_BINDX\_ADD\_ADDR** to associate additional addresses with an endpoint after calling **[bind(2)](/man/os/libsctp/bind.2).** **SCTP\_BINDX\_REM\_ADDR** directs SCTP to remove the given addresses from the association. A caller may not remove all addresses from an association. It will fail with **EINVAL.**

# [RETURN VALUE](#RETURN_VALUE)

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

# [ERRORS](#ERRORS)

[**EBADF**](#EBADF)

*sd* is not a valid descriptor.

[**ENOTSOCK**](#ENOTSOCK)

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

[**EFAULT**](#EFAULT)

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

[**EINVAL**](#EINVAL)

Invalid port or address or trying to remove all addresses from an association.

[**EACCES**](#EACCES)

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

# [SEE ALSO](#SEE_ALSO)

[**sctp**(7)](/man/os/libsctp/sctp.7) [**sctp\_sendmsg**(3)](/man/os/libsctp/sctp_sendmsg.3), [**sctp\_sendv**(3)](/man/os/libsctp/sctp_sendv.3), [**sctp\_send**(3)](/man/os/libsctp/sctp_send.3), [**sctp\_recvmsg**(3)](/man/os/libsctp/sctp_recvmsg.3), [**sctp\_recvv**(3)](/man/os/libsctp/sctp_recvv.3), [**sctp\_peeloff**(3)](/man/os/libsctp/sctp_peeloff.3), [**sctp\_getpaddrs**(3)](/man/os/libsctp/sctp_getpaddrs.3), [**sctp\_getladdrs**(3)](/man/os/libsctp/sctp_getladdrs.3), [**sctp\_opt\_info**(3)](/man/os/libsctp/sctp_opt_info.3), [**sctp\_connectx**(3)](/man/os/libsctp/sctp_connectx.3)

2005-10-25 Linux 2.6

---

Document: sctp_bindx(3) from libsctp 1.0.21-r4 (Chainguard OS)
Source: https://github.com/sctp/lksctp-tools
