1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-12 09:58:36 +00:00

-Reflect function name change.

-Added more description.
-Many grammer fix.
-Fix hard sentence break.
-Many other man style fix.

Thanks for bde finding out the problem.
Thanks for sheldon for the patient and thorough review.
:-)

Submitted by: bde
Reviewed by: sheldonh
This commit is contained in:
Yoshinobu Inoue 2000-03-02 15:57:06 +00:00
parent d72d02311f
commit a56a8ad111
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=57699

View File

@ -32,7 +32,7 @@
.\" From: @(#)rcmd.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd February 15, 1996
.Dd March 3, 2000
.Dt RCMD 3
.Os BSD 4.2
.Sh NAME
@ -42,8 +42,7 @@
.Nm ruserok ,
.Nm rcmd_af ,
.Nm rresvport_af ,
.Nm iruserok_af ,
.Nm ruserok_af
.Nm iruserok_sa
.Nd routines for returning a stream to a remote command
.Sh SYNOPSIS
.Fd #include <unistd.h>
@ -60,9 +59,7 @@
.Ft int
.Fn rresvport_af "int *port" "int af"
.Ft int
.Fn iruserok_af "void *raddr" "int superuser" "const char *ruser" "const char *luser" "int af"
.Ft int
.Fn ruserok_af "const char *rhost" "int superuser" "const char *ruser" "const char *luser" "int af"
.Fn iruserok_sa "const void *addr" "int addrlen" "int superuser" "const char *ruser" "const char *luser"
.Sh DESCRIPTION
The
.Fn rcmd
@ -93,7 +90,7 @@ looks up the host
.Fa *ahost
using
.Xr gethostbyname 3 ,
returning \-1 if the host does not exist.
returning -1 if the host does not exist.
Otherwise
.Fa *ahost
is set to the standard name of the host
@ -137,13 +134,14 @@ The protocol is described in detail in
.Pp
The
.Fn rresvport
function is used to obtain a socket with a privileged
address bound to it. This socket is suitable for use
by
function is used to obtain a socket to which an address with a Privileged
Internet port is bound.
This socket is suitable for use by
.Fn rcmd
and several other functions. Privileged Internet ports are those
in the range 0 to 1023. Only the super-user
is allowed to bind an address of this sort to a socket.
and several other functions.
Privileged Internet ports are those in the range 0 to 1023.
Only the super-user is allowed to bind an address of this sort
to a socket.
.Pp
The
.Fn iruserok
@ -174,7 +172,7 @@ file; otherwise
.Fn iruserok
and
.Fn ruserok
return \-1.
return -1.
If the local domain (as obtained from
.Xr gethostname 3 )
is the same as the remote domain, only the machine name need be specified.
@ -186,18 +184,59 @@ It requires trusting the local DNS at most, while the
.Fn ruserok
function requires trusting the entire DNS, which can be spoofed.
.Pp
Functions with ``_af'' suffix, i.e.
.Fn rcmd_af ,
.Fn rresvport_af ,
.Fn iruserok_af
and
.Fn ruserok_af ,
works just as same as functions without ``_af'', and is capable of
handling both IPv6 port and IPv4 port.
Functions without
The functions with an
.Dq Li _af
works for IPv4 only.
To switch address family,
suffix or
.Dq Li _sa
suffix, i.e.,
.Fn rcmd_af,
.Fn rresvport_af
and
.Fn iruserok_sa ,
work the same as functions without an
.Dq Li _af
suffix nor
.Dq Li _sa
suffix, except that they are capable of handling both IPv6 and IPv4 ports.
.Pp
The
.Dq Li _af
suffix means the function has an additional
.Fa af
argument which is used to specify address family,
such as
.Dv AF_INET
for IPv4, and
.Dv AF_INET6
for IPv6.
The
.Fa af
argument extension is implemented for functions
which have no binary address argument.
Instead, the
.Fa af
argument specifies which address family is desired.
.Pp
The
.Dq Li _sa
suffix means the function has general socket address and
length arguments instead of protocol dependent address argument.
As the socket address is a protocol independent data structure,
IPv4 and IPv6 socket address can be passed as desired.
.Fa sa
argument extension is implemented for functions
which pass a protocol dependent binary address argument.
The argument needs to be replaced with a more general format
to support multiple address families in a general way.
.Pp
The functions without an
.Dq Li _af
suffix nor
.Dq Li _sa
suffix work for IPv4 only, except for
.Fn ruserok
which can handle both IPv6 and IPv4.
.To switch the address family, the
.Fa af
argument must be filled with
.Dv AF_INET ,
@ -212,13 +251,14 @@ The
.Fn rcmd
function
returns a valid socket descriptor on success.
It returns \-1 on error and prints a diagnostic message on the standard error.
It returns -1 on error and prints a diagnostic message
on the standard error.
.Pp
The
.Fn rresvport
function
returns a valid, bound socket descriptor on success.
It returns \-1 on error with the global value
It returns -1 on error with the global value
.Va errno
set according to the reason for failure.
The error code
@ -233,20 +273,27 @@ is overloaded to mean ``All network ports in use.''
.Xr rlogind 8 ,
.Xr rshd 8
.Pp
W. Stevens and M. Thomas, ``Advanced Socket API for IPv6,''
RFC2292.
.Rs
.%A W. Stevens and M. Thomas
.%T ``Advanced Socket API for IPv6,''
RFC2292,
.Re
.Rs
.%A W. Stevens, M. Thomas and E. Nordmark
.%T ``Advanced Socket API for IPv6,''
draft-ietf-ipngwg-rfc2292bis-01.txt,
.Re
.Sh HISTORY
These
functions appeared in
.Bx 4.2 .
.Fn rresvport_af
appeared in RFC2292, and implemented by WIDE project
for Hydrangea IPv6 protocol stack kit.
appeared in RFC2292, and was implemented by the WIDE project
for the Hydrangea IPv6 protocol stack kit.
.Fn rcmd_af
appeared in draft-ietf-ipngwg-rfc2292bis-01.txt,
and implemented by WIDE/KAME IPv6 protocol stack kit.
.Fn iruserok_af
and
.Fn rusreok_af
are proposed and implemented by WIDE project
for Hydrangea IPv6 protocol stack kit.
and was implemented in the WIDE/KAME IPv6 protocol stack kit.
.Fn iruserok_sa
appeared in discussion on the IETF ipngwg mailing list,
and was implemented in
.Fx 4.0 .