bindresvport


SYNOPSIS
       #include <sys/types.h>
       #include <netinet/in.h>

       int bindresvport(int sockfd, struct sockaddr_in *sin);

DESCRIPTION
       bindresvport()  is  used  to  bind  a socket descriptor to a privileged
       anonymous IP port, that is, a port number arbitrarily selected from the
       range 512 to 1023.

       If  the  bind(2)  performed by bindresvport() is successful, and sin is
       not NULL, then sin->sin_port returns the  port  number  actually  allo-
       cated.

       sin  can  be NULL, in which case sin->sin_family is implicitly taken to
       be AF_INET.  However, in this case, bindresvport() has no way to return
       the  port  number  actually  allocated.  (This information can later be
       obtained using getsockname(2).)

RETURN VALUE
       bindresvport() returns 0 on success; otherwise -1 is returned and errno
       set to indicate the cause of the error.

ERRORS
       bindresvport()  can  fail  for  any of the same reasons as bind(2).  In
       addition, the following errors may occur:

       EACCES The caller did not have superuser privilege (to be precise:  the
              CAP_NET_BIND_SERVICE capability is required).

       EADDRINUSE
              All privileged ports are in use.

       EAFNOSUPPORT (EPFNOSUPPORT in glibc 2.7 and earlier)
              sin is not NULL and sin->sin_family is not AF_INET.

ATTRIBUTES
   Multithreading (see pthreads(7))
       Before  glibc  2.17, the bindresvport() function uses a static variable
       that is not protected, so it is not thread-safe.

       Since glibc 2.17, the bindresvport() function uses a  lock  to  protect
       static variable, so it is thread-safe.

CONFORMING TO
       Not in POSIX.1-2001.  Present on the BSDs, Solaris, and many other sys-
       tems.

NOTES
       Unlike some bindresvport() implementations,  the  glibc  implementation
       ignores any value that the caller supplies in sin->sin_port.
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2018 Hurricane Electric. All Rights Reserved.