Blame man/bindresvport.3t
|
Packit Service |
4f68e0 |
.\" @(#)bindresvport.3n 2.2 88/08/02 4.0 RPCSRC; from 1.7 88/03/14 SMI
|
|
Packit Service |
4f68e0 |
.\"
|
|
Packit Service |
4f68e0 |
.Dd November 22, 1987
|
|
Packit Service |
4f68e0 |
.Dt BINDRESVPORT 3
|
|
Packit Service |
4f68e0 |
.Os
|
|
Packit Service |
4f68e0 |
.Sh NAME
|
|
Packit Service |
4f68e0 |
.Nm bindresvport ,
|
|
Packit Service |
4f68e0 |
.Nm bindresvport_sa
|
|
Packit Service |
4f68e0 |
.Nd bind a socket to a privileged IP port
|
|
Packit Service |
4f68e0 |
.Sh SYNOPSIS
|
|
Packit Service |
4f68e0 |
.In sys/types.h
|
|
Packit Service |
4f68e0 |
.In rpc/rpc.h
|
|
Packit Service |
4f68e0 |
.Ft int
|
|
Packit Service |
4f68e0 |
.Fn bindresvport "int sd" "struct sockaddr_in *sin"
|
|
Packit Service |
4f68e0 |
.Ft int
|
|
Packit Service |
4f68e0 |
.Fn bindresvport_sa "int sd" "struct sockaddr *sa"
|
|
Packit Service |
4f68e0 |
.Sh DESCRIPTION
|
|
Packit Service |
4f68e0 |
The
|
|
Packit Service |
4f68e0 |
.Fn bindresvport
|
|
Packit Service |
4f68e0 |
and
|
|
Packit Service |
4f68e0 |
.Fn bindresvport_sa
|
|
Packit Service |
4f68e0 |
functions
|
|
Packit Service |
4f68e0 |
are used to bind a socket descriptor to a privileged
|
|
Packit Service |
4f68e0 |
.Tn IP
|
|
Packit Service |
4f68e0 |
port, that is, a
|
|
Packit Service |
4f68e0 |
port number in the range 0-1023.
|
|
Packit Service |
4f68e0 |
.Pp
|
|
Packit Service |
4f68e0 |
If
|
|
Packit Service |
4f68e0 |
.Fa sin
|
|
Packit Service |
4f68e0 |
is a pointer to a
|
|
Packit Service |
4f68e0 |
.Ft "struct sockaddr_in"
|
|
Packit Service |
4f68e0 |
then the appropriate fields in the structure should be defined.
|
|
Packit Service |
4f68e0 |
Note that
|
|
Packit Service |
4f68e0 |
.Fa sin->sin_family
|
|
Packit Service |
4f68e0 |
must be initialized to the address family of the socket, passed by
|
|
Packit Service |
4f68e0 |
.Fa sd .
|
|
Packit Service |
4f68e0 |
If
|
|
Packit Service |
4f68e0 |
.Fa sin->sin_port
|
|
Packit Service |
4f68e0 |
is
|
|
Packit Service |
4f68e0 |
.Sq 0
|
|
Packit Service |
4f68e0 |
then an anonymous port (in the range 600-1023) will be
|
|
Packit Service |
4f68e0 |
chosen, and if
|
|
Packit Service |
4f68e0 |
.Xr bind 2
|
|
Packit Service |
4f68e0 |
is successful, the
|
|
Packit Service |
4f68e0 |
.Fa sin->sin_port
|
|
Packit Service |
4f68e0 |
will be updated to contain the allocated port.
|
|
Packit Service |
4f68e0 |
.Pp
|
|
Packit Service |
4f68e0 |
If
|
|
Packit Service |
4f68e0 |
.Fa sin
|
|
Packit Service |
4f68e0 |
is the
|
|
Packit Service |
4f68e0 |
.Dv NULL
|
|
Packit Service |
4f68e0 |
pointer,
|
|
Packit Service |
4f68e0 |
an anonymous port will be allocated (as above).
|
|
Packit Service |
4f68e0 |
However, there is no way for
|
|
Packit Service |
4f68e0 |
.Fn bindresvport
|
|
Packit Service |
4f68e0 |
to return the allocated port in this case.
|
|
Packit Service |
4f68e0 |
.Pp
|
|
Packit Service |
4f68e0 |
Only root can bind to a privileged port; this call will fail for any
|
|
Packit Service |
4f68e0 |
other users.
|
|
Packit Service |
4f68e0 |
.Pp
|
|
Packit Service |
4f68e0 |
Function prototype of
|
|
Packit Service |
4f68e0 |
.Fn bindresvport
|
|
Packit Service |
4f68e0 |
is biased to
|
|
Packit Service |
4f68e0 |
.Dv AF_INET
|
|
Packit Service |
4f68e0 |
socket.
|
|
Packit Service |
4f68e0 |
The
|
|
Packit Service |
4f68e0 |
.Fn bindresvport_sa
|
|
Packit Service |
4f68e0 |
function
|
|
Packit Service |
4f68e0 |
acts exactly the same, with more neutral function prototype.
|
|
Packit Service |
4f68e0 |
Note that both functions behave exactly the same, and
|
|
Packit Service |
4f68e0 |
both support
|
|
Packit Service |
4f68e0 |
.Dv AF_INET6
|
|
Packit Service |
4f68e0 |
sockets as well as
|
|
Packit Service |
4f68e0 |
.Dv AF_INET
|
|
Packit Service |
4f68e0 |
sockets.
|
|
Packit Service |
4f68e0 |
.Sh RETURN VALUES
|
|
Packit Service |
4f68e0 |
.Rv -std bindresvport
|
|
Packit Service |
4f68e0 |
.Sh ERRORS
|
|
Packit Service |
4f68e0 |
.Bl -tag -width Er
|
|
Packit Service |
4f68e0 |
.It Bq Er EPFNOSUPPORT
|
|
Packit Service |
4f68e0 |
If second argument was supplied,
|
|
Packit Service |
4f68e0 |
and address family did not match between arguments.
|
|
Packit Service |
4f68e0 |
.El
|
|
Packit Service |
4f68e0 |
.Pp
|
|
Packit Service |
4f68e0 |
The
|
|
Packit Service |
4f68e0 |
.Fn bindresvport
|
|
Packit Service |
4f68e0 |
function
|
|
Packit Service |
4f68e0 |
may also fail and set
|
|
Packit Service |
4f68e0 |
.Va errno
|
|
Packit Service |
4f68e0 |
for any of the errors specified for the calls
|
|
Packit Service |
4f68e0 |
.Xr bind 2 ,
|
|
Packit Service |
4f68e0 |
.Xr getsockopt 2 ,
|
|
Packit Service |
4f68e0 |
or
|
|
Packit Service |
4f68e0 |
.Xr setsockopt 2 .
|
|
Packit Service |
4f68e0 |
.Sh AVAILABILITY
|
|
Packit Service |
4f68e0 |
The
|
|
Packit Service |
4f68e0 |
.Fn bindresvport
|
|
Packit Service |
4f68e0 |
function is part of libtirpc.
|
|
Packit Service |
4f68e0 |
.Sh SEE ALSO
|
|
Packit Service |
4f68e0 |
.Xr bind 2 ,
|
|
Packit Service |
4f68e0 |
.Xr getsockopt 2 ,
|
|
Packit Service |
4f68e0 |
.Xr setsockopt 2
|