MirOS Manual: bindresvport(3), bindresvport_sa(3)

BINDRESVPORT(3)            BSD Programmer's Manual             BINDRESVPORT(3)

NAME

     bindresvport, bindresvport_sa - bind a socket to a privileged IP port

SYNOPSIS

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

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

     int
     bindresvport_sa(int sd, struct sockaddr *sa);

DESCRIPTION

     The bindresvport() and bindresvport_sa() functions are used to bind a
     socket descriptor to a privileged IP port, that is, a port number in the
     range 0-1023. The bindresvport() function operates solely on AF_INET
     sockets, whereas the bindresvport_sa() function is capable of binding
     both AF_INET and AF_INET6 sockets.

     Only the superuser may bind to a privileged port; these functions will
     fail for any other user.

     sd should be a socket descriptor that was returned by a call to
     socket(2).

     If sin is not the NULL pointer, sin->sin_family must be initialized to
     the address family of the socket sd. If the value of sin->sin_port is
     non-zero, bindresvport() will attempt to use the specified port. Other-
     wise, a free port in the range 600-1023 will be chosen and, if the
     bind(2) succeeds, sin->sin_port will be updated with the port that was
     assigned.

     If sin is the NULL pointer, a free port in the range 600-1023 will be
     chosen (as above), but in this case there is no way for bindresvport() to
     communicate to the caller which port was assigned.

RETURN VALUES

     bindresvport() returns 0 if it is successful, otherwise -1 is returned
     and errno set to reflect the cause of the error.

ERRORS

     The bindresvport() function fails if:

     [EBADF]       sd is not a valid descriptor.

     [ENOTSOCK]    sd is not a socket.

     [EADDRNOTAVAIL]
                   The specified address is not available from the local
                   machine.

     [EADDRINUSE]  The specified address is already in use.

     [EINVAL]      The socket is already bound to an address.

     [EINVAL]      The family of the socket and that requested in sa-
                   >sa_family are not equivalent.

     [EACCES]      The requested address is protected, and the current user
                   has inadequate permission to access it.

     [EFAULT]      The name parameter is not in a valid part of the user ad-
                   dress space.
     [ENOBUFS]     Insufficient resources were available in the system to per-
                   form the operation.

     [EPFNOSUPPORT]
                   The protocol family has not been configured into the sys-
                   tem, no implementation for it exists, or address family did
                   not match between arguments.

SEE ALSO

     bind(2), socket(2), rresvport(3), rresvport_af(3)

MirOS BSD #10-current           August 9, 1997                               1

Generated on 2014-07-04 21:17:45 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.