socket_bind6_reuse(3)

NAME
socket_bind6_reuse - set the local IP address and port of a socket

SYNTAX
#include <libowfat/socket.h>

int socket_bind6_reuse(int s,char ip[16],uint16 port,
                       uint32 scope_id);

DESCRIPTION
socket_bind6_reuse sets the local IP address and TCP/UDP port of a TCP/UDP socket s to ip and port respectively.

If the IP address is ::, the operating system chooses a local IP address. If port is 0, the operating system chooses a port.

Normally socket_bind6_reuse returns 0. If anything goes wrong, socket_bind6_reuse returns -1, setting errno appropriately.

The scope_id should normally be zero, but for link-local addresses it specifies the interface number on which to bind. The interface number for a given network interface name can be found with socket_getifidx.

Unlike socket_bind6 this function will also tell the operating system that the address is to be reused soon, which turns off the normal pause before this IP and port can be bound again.

EXAMPLE
  #include <libowfat/socket.h>

  int s;
  char ip[16];
  uint16 p;

  s = socket_tcp4();
  socket_bind6_reuse(s,ip,p);
  socket_connect4(s,ip,p);

SEE ALSO
socket_bind6(3)