summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillem Jover <guillem@hadrons.org>2010-06-10 22:47:29 +0200
committerGuillem Jover <guillem@hadrons.org>2010-06-10 23:21:26 +0200
commit9da51d80c38e420b1601a63ab005f5c04868aeb4 (patch)
tree62f9809fbc15d0b011d9c4897b39967498283bdb
parent4f4bbf12cc54da472a19c0b78ab65c5f866b02cf (diff)
downloadinetutils-9da51d80c38e420b1601a63ab005f5c04868aeb4.tar.gz
Revert upstream switch to help2man generated man pages
Upstream switched to generate man pages from --help output, which is a regression from previous man pages inherited from BSD. Revert the removal and disable help2man logic.
-rw-r--r--debian/changelog4
-rw-r--r--debian/patches/01_revert_manpage_removal.patch7160
-rw-r--r--debian/patches/series1
3 files changed, 7165 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 0ae810b..f8280a7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,10 @@ inetutils (2:1.8-1) UNRELEASED; urgency=low
- debian/patches/50_split_load_conffile.patch: Likewise.
- debian/patches/51_add_load_confdir_support.patch: Likewise.
- debian/patches/53_man_inetd_max_conn.patch: Likewise.
+ * Upstream switched to generate man pages from --help output, which is
+ a regression from previous man pages inherited from BSD. Revert the
+ removal and disable help2man logic.
+ - debian/patches/01_revert_manpage_removal.patch: New file.
-- Guillem Jover <guillem@debian.org> Tue, 08 Jun 2010 21:16:04 +0200
diff --git a/debian/patches/01_revert_manpage_removal.patch b/debian/patches/01_revert_manpage_removal.patch
new file mode 100644
index 0000000..c521ebf
--- /dev/null
+++ b/debian/patches/01_revert_manpage_removal.patch
@@ -0,0 +1,7160 @@
+From 51aff90bccf50ebee86c7e4945f2b059f93aefd2 Mon Sep 17 00:00:00 2001
+From: Guillem Jover <guillem@hadrons.org>
+Date: Wed, 9 Jun 2010 03:56:08 +0200
+Subject: [PATCH] Revert "2009-04-30 Alfred M. Szmidt <ams@gnu.org>"
+
+This reverts commit fed208adedb4b336135f5f82f0a1430e4d25a4d1.
+---
+ Makefile.am | 2 +-
+ configure.ac | 2 -
+ ftp/Makefile.am | 6 +
+ ftp/ftp.1 | 1155 +++++++++++++++++++++++++++++++++++++++++++
+ ftpd/Makefile.am | 8 +-
+ ftpd/ftpd.8 | 300 +++++++++++
+ whois/whois.1 | 96 ++++
+ libls/Makefile.am | 2 +
+ libls/ls.1 | 446 +++++++++++++++++
+ ping/Makefile.am | 8 +
+ ping/ping.8 | 328 +++++++++++++
+ src/Makefile.am | 37 ++
+ src/inetd.8 | 439 +++++++++++++++++
+ src/logger.1 | 96 ++++
+ src/rcp.1 | 155 ++++++
+ src/rexecd.8 | 145 ++++++
+ src/rlogin.1 | 184 +++++++
+ src/rlogind.8 | 164 ++++++
+ src/rsh.1 | 183 +++++++
+ src/rshd.8 | 205 ++++++++
+ src/syslog.conf.5 | 251 ++++++++++
+ src/syslogd.8 | 163 ++++++
+ src/tftp.1 | 169 +++++++
+ src/tftpd.8 | 102 ++++
+ talk/Makefile.am | 6 +
+ talk/talk.1 | 125 +++++
+ talkd/Makefile.am | 6 +
+ talkd/talkd.8 | 71 +++
+ telnet/Makefile.am | 6 +
+ telnet/telnet.1 | 1362 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ telnetd/Makefile.am | 7 +
+ telnetd/telnetd.8 | 603 +++++++++++++++++++++++
+ 32 files changed, 6827 insertions(+), 5 deletions(-)
+ create mode 100644 ftp/ftp.1
+ create mode 100644 ftpd/ftpd.8
+ create mode 100644 whois/whois.1
+ create mode 100644 libls/ls.1
+ create mode 100755 ping/ping.8
+ create mode 100644 src/inetd.8
+ create mode 100644 src/logger.1
+ create mode 100644 src/rcp.1
+ create mode 100644 src/rexecd.8
+ create mode 100644 src/rlogin.1
+ create mode 100644 src/rlogind.8
+ create mode 100644 src/rsh.1
+ create mode 100644 src/rshd.8
+ create mode 100644 src/syslog.conf.5
+ create mode 100644 src/syslogd.8
+ create mode 100644 src/tftp.1
+ create mode 100644 src/tftpd.8
+ create mode 100644 talk/talk.1
+ create mode 100644 talkd/talkd.8
+ create mode 100644 telnet/telnet.1
+ create mode 100644 telnetd/telnetd.8
+
+diff --git a/Makefile.am b/Makefile.am
+index 7af1c56..34d105b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -26,7 +26,7 @@ EXTRA_DIST = README-alpha paths ChangeLog.0
+ SUBDIRS = lib \
+ libinetutils libtelnet libicmp libls \
+ src telnet telnetd ftp ftpd talk talkd whois ping ifconfig \
+- doc man \
++ doc \
+ tests
+
+ DISTCLEANFILES = pathdefs.make paths.defs $(PACKAGE)-$(VERSION).tar.gz
+diff --git a/configure.ac b/configure.ac
+index 2b60bde..f582074 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -133,7 +133,6 @@ AC_PROG_MAKE_SET
+ AC_PROG_RANLIB
+ AC_PROG_YACC
+ AC_PROG_LN_S
+-AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir)
+
+ gl_INIT
+
+@@ -812,7 +811,6 @@ ping/Makefile
+ ifconfig/Makefile
+ ifconfig/system/Makefile
+ doc/Makefile
+-man/Makefile
+ tests/Makefile
+ confpaths.h:confpaths.h.in
+ ])
+diff --git a/ftp/Makefile.am b/ftp/Makefile.am
+index 9693eed..53ea666 100644
+--- a/ftp/Makefile.am
++++ b/ftp/Makefile.am
+@@ -25,6 +25,12 @@ ftp_SOURCES = cmds.c cmdtab.c domacro.c ftp.c main.c ruserpass.c
+
+ noinst_HEADERS = extern.h ftp_var.h
+
++if ENABLE_ftp
++man_MANS = ftp.1
++endif
++
++EXTRA_DIST = $(man_MANS)
++
+ @PATHDEFS_MAKE@
+
+ INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils
+diff --git a/ftp/ftp.1 b/ftp/ftp.1
+new file mode 100644
+index 0000000..f05718c
+--- /dev/null
++++ b/ftp/ftp.1
+@@ -0,0 +1,1155 @@
++.\" Copyright (c) 1985, 1989, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)ftp.1 8.3 (Berkeley) 10/9/94
++.\"
++.Dd October 9, 1994
++.Dt FTP 1
++.Os BSD 4.2
++.Sh NAME
++.Nm ftp
++.Nd
++.Tn ARPANET
++file transfer program
++.Sh SYNOPSIS
++.Nm ftp
++.Op Fl v
++.Op Fl d
++.Op Fl i
++.Op Fl n
++.Op Fl g
++.Op Ar host
++.Sh DESCRIPTION
++.Nm Ftp
++is the user interface to the
++.Tn ARPANET
++standard File Transfer Protocol.
++The program allows a user to transfer files to and from a
++remote network site.
++.Pp
++Options may be specified at the command line, or to the
++command interpreter.
++.Bl -tag -width flag
++.It Fl v
++Verbose option forces
++.Nm ftp
++to show all responses from the remote server, as well
++as report on data transfer statistics.
++.It Fl n
++Restrains
++.Nm ftp
++from attempting \*(Lqauto-login\*(Rq upon initial connection.
++If auto-login is enabled,
++.Nm ftp
++will check the
++.Pa .netrc
++(see below) file in the user's home directory for an entry describing
++an account on the remote machine.
++If no entry exists,
++.Nm ftp
++will prompt for the remote machine login name (default is the user
++identity on the local machine), and, if necessary, prompt for a password
++and an account with which to login.
++.It Fl i
++Turns off interactive prompting during
++multiple file transfers.
++.It Fl d
++Enables debugging.
++.It Fl g
++Disables file name globbing.
++.El
++.Pp
++The client host with which
++.Nm ftp
++is to communicate may be specified on the command line.
++If this is done,
++.Nm ftp
++will immediately attempt to establish a connection to an
++.Tn FTP
++server on that host; otherwise,
++.Nm ftp
++will enter its command interpreter and await instructions
++from the user.
++When
++.Nm ftp
++is awaiting commands from the user the prompt
++.Ql ftp>
++is provided to the user.
++The following commands are recognized
++by
++.Nm ftp :
++.Bl -tag -width Fl
++.It Ic \&! Op Ar command Op Ar args
++Invoke an interactive shell on the local machine.
++If there are arguments, the first is taken to be a command to execute
++directly, with the rest of the arguments as its arguments.
++.It Ic \&$ Ar macro-name Op Ar args
++Execute the macro
++.Ar macro-name
++that was defined with the
++.Ic macdef
++command.
++Arguments are passed to the macro unglobbed.
++.It Ic account Op Ar passwd
++Supply a supplemental password required by a remote system for access
++to resources once a login has been successfully completed.
++If no argument is included, the user will be prompted for an account
++password in a non-echoing input mode.
++.It Ic append Ar local-file Op Ar remote-file
++Append a local file to a file on the remote machine.
++If
++.Ar remote-file
++is left unspecified, the local file name is used in naming the
++remote file after being altered by any
++.Ic ntrans
++or
++.Ic nmap
++setting.
++File transfer uses the current settings for
++.Ic type ,
++.Ic format ,
++.Ic mode ,
++and
++.Ic structure .
++.It Ic ascii
++Set the file transfer
++.Ic type
++to network
++.Tn ASCII .
++This is the default type.
++.It Ic bell
++Arrange that a bell be sounded after each file transfer
++command is completed.
++.It Ic binary
++Set the file transfer
++.Ic type
++to support binary image transfer.
++.It Ic bye
++Terminate the
++.Tn FTP
++session with the remote server
++and exit
++.Nm ftp .
++An end of file will also terminate the session and exit.
++.It Ic case
++Toggle remote computer file name case mapping during
++.Ic mget
++commands.
++When
++.Ic case
++is on (default is off), remote computer file names with all letters in
++upper case are written in the local directory with the letters mapped
++to lower case.
++.It Ic \&cd Ar remote-directory
++Change the working directory on the remote machine
++to
++.Ar remote-directory .
++.It Ic cdup
++Change the remote machine working directory to the parent of the
++current remote machine working directory.
++.It Ic chmod Ar mode file-name
++Change the permission modes of the file
++.Ar file-name
++on the remote
++sytem to
++.Ar mode .
++.It Ic close
++Terminate the
++.Tn FTP
++session with the remote server, and
++return to the command interpreter.
++Any defined macros are erased.
++.It Ic \&cr
++Toggle carriage return stripping during
++ascii type file retrieval.
++Records are denoted by a carriage return/linefeed sequence
++during ascii type file transfer.
++When
++.Ic \&cr
++is on (the default), carriage returns are stripped from this
++sequence to conform with the
++.Ux
++single linefeed record
++delimiter.
++Records on
++.Pf non\- Ns Ux
++remote systems may contain single linefeeds;
++when an ascii type transfer is made, these linefeeds may be
++distinguished from a record delimiter only when
++.Ic \&cr
++is off.
++.It Ic delete Ar remote-file
++Delete the file
++.Ar remote-file
++on the remote machine.
++.It Ic debug Op Ar debug-value
++Toggle debugging mode.
++If an optional
++.Ar debug-value
++is specified it is used to set the debugging level.
++When debugging is on,
++.Nm ftp
++prints each command sent to the remote machine, preceded
++by the string
++.Ql \-\->
++.It Xo
++.Ic dir
++.Op Ar remote-directory
++.Op Ar local-file
++.Xc
++Print a listing of the directory contents in the
++directory,
++.Ar remote-directory ,
++and, optionally, placing the output in
++.Ar local-file .
++If interactive prompting is on,
++.Nm ftp
++will prompt the user to verify that the last argument is indeed the
++target local file for receiving
++.Ic dir
++output.
++If no directory is specified, the current working
++directory on the remote machine is used.
++If no local
++file is specified, or
++.Ar local-file
++is
++.Fl ,
++output comes to the terminal.
++.It Ic disconnect
++A synonym for
++.Ar close .
++.It Ic form Ar format
++Set the file transfer
++.Ic form
++to
++.Ar format .
++The default format is \*(Lqfile\*(Rq.
++.It Ic get Ar remote-file Op Ar local-file
++Retrieve the
++.Ar remote-file
++and store it on the local machine.
++If the local
++file name is not specified, it is given the same
++name it has on the remote machine, subject to
++alteration by the current
++.Ic case ,
++.Ic ntrans ,
++and
++.Ic nmap
++settings.
++The current settings for
++.Ic type ,
++.Ic form ,
++.Ic mode ,
++and
++.Ic structure
++are used while transferring the file.
++.It Ic glob
++Toggle filename expansion for
++.Ic mdelete ,
++.Ic mget
++and
++.Ic mput .
++If globbing is turned off with
++.Ic glob ,
++the file name arguments
++are taken literally and not expanded.
++Globbing for
++.Ic mput
++is done as in
++.Xr csh 1 .
++For
++.Ic mdelete
++and
++.Ic mget ,
++each remote file name is expanded
++separately on the remote machine and the lists are not merged.
++Expansion of a directory name is likely to be
++different from expansion of the name of an ordinary file:
++the exact result depends on the foreign operating system and ftp server,
++and can be previewed by doing
++.Ql mls remote-files \-
++Note:
++.Ic mget
++and
++.Ic mput
++are not meant to transfer
++entire directory subtrees of files.
++That can be done by
++transferring a
++.Xr tar 1
++archive of the subtree (in binary mode).
++.It Ic hash Op Ar size
++Toggle hash-sign (``#'') printing for each data block
++transferred.
++The
++.Ar size
++of a data block can optionally be specified. If not given, it defaults to 1024 bytes.
++.It Ic help Op Ar command
++Print an informative message about the meaning of
++.Ar command .
++If no argument is given,
++.Nm ftp
++prints a list of the known commands.
++.It Ic idle Op Ar seconds
++Set the inactivity timer on the remote server to
++.Ar seconds
++seconds.
++If
++.Ar seconds
++is omitted, the current inactivity timer is printed.
++.It Ic lcd Op Ar directory
++Change the working directory on the local machine.
++If
++no
++.Ar directory
++is specified, the user's home directory is used.
++.It Xo
++.Ic \&ls
++.Op Ar remote-directory
++.Op Ar local-file
++.Xc
++Print a listing of the contents of a
++directory on the remote machine.
++The listing includes any system-dependent information that the server
++chooses to include; for example, most
++.Ux
++systems will produce
++output from the command
++.Ql ls \-l .
++(See also
++.Ic nlist . )
++If
++.Ar remote-directory
++is left unspecified, the current working directory is used.
++If interactive prompting is on,
++.Nm ftp
++will prompt the user to verify that the last argument is indeed the
++target local file for receiving
++.Ic \&ls
++output.
++If no local file is specified, or if
++.Ar local-file
++is
++.Sq Fl ,
++the output is sent to the terminal.
++.It Ic macdef Ar macro-name
++Define a macro.
++Subsequent lines are stored as the macro
++.Ar macro-name ;
++a null line (consecutive newline characters
++in a file or
++carriage returns from the terminal) terminates macro input mode.
++There is a limit of 16 macros and 4096 total characters in all
++defined macros.
++Macros remain defined until a
++.Ic close
++command is executed.
++The macro processor interprets `$' and `\e' as special characters.
++A `$' followed by a number (or numbers) is replaced by the
++corresponding argument on the macro invocation command line.
++A `$' followed by an `i' signals that macro processor that the
++executing macro is to be looped.
++On the first pass `$i' is
++replaced by the first argument on the macro invocation command line,
++on the second pass it is replaced by the second argument, and so on.
++A `\e' followed by any character is replaced by that character.
++Use the `\e' to prevent special treatment of the `$'.
++.It Ic mdelete Op Ar remote-files
++Delete the
++.Ar remote-files
++on the remote machine.
++.It Ic mdir Ar remote-files local-file
++Like
++.Ic dir ,
++except multiple remote files may be specified.
++If interactive prompting is on,
++.Nm ftp
++will prompt the user to verify that the last argument is indeed the
++target local file for receiving
++.Ic mdir
++output.
++.It Ic mget Ar remote-files
++Expand the
++.Ar remote-files
++on the remote machine
++and do a
++.Ic get
++for each file name thus produced.
++See
++.Ic glob
++for details on the filename expansion.
++Resulting file names will then be processed according to
++.Ic case ,
++.Ic ntrans ,
++and
++.Ic nmap
++settings.
++Files are transferred into the local working directory,
++which can be changed with
++.Ql lcd directory ;
++new local directories can be created with
++.Ql "\&! mkdir directory" .
++.It Ic mkdir Ar directory-name
++Make a directory on the remote machine.
++.It Ic mls Ar remote-files local-file
++Like
++.Ic nlist ,
++except multiple remote files may be specified,
++and the
++.Ar local-file
++must be specified.
++If interactive prompting is on,
++.Nm ftp
++will prompt the user to verify that the last argument is indeed the
++target local file for receiving
++.Ic mls
++output.
++.It Ic mode Op Ar mode-name
++Set the file transfer
++.Ic mode
++to
++.Ar mode-name .
++The default mode is \*(Lqstream\*(Rq mode.
++.It Ic modtime Ar file-name
++Show the last modification time of the file on the remote machine.
++.It Ic mput Ar local-files
++Expand wild cards in the list of local files given as arguments
++and do a
++.Ic put
++for each file in the resulting list.
++See
++.Ic glob
++for details of filename expansion.
++Resulting file names will then be processed according to
++.Ic ntrans
++and
++.Ic nmap
++settings.
++.It Ic newer Ar file-name
++Get the file only if the modification time of the remote file is more
++recent that the file on the current system.
++If the file does not
++exist on the current system, the remote file is considered
++.Ic newer .
++Otherwise, this command is identical to
++.Ar get .
++.It Xo
++.Ic nlist
++.Op Ar remote-directory
++.Op Ar local-file
++.Xc
++Print a list of the files in a
++directory on the remote machine.
++If
++.Ar remote-directory
++is left unspecified, the current working directory is used.
++If interactive prompting is on,
++.Nm ftp
++will prompt the user to verify that the last argument is indeed the
++target local file for receiving
++.Ic nlist
++output.
++If no local file is specified, or if
++.Ar local-file
++is
++.Fl ,
++the output is sent to the terminal.
++.It Ic nmap Op Ar inpattern outpattern
++Set or unset the filename mapping mechanism.
++If no arguments are specified, the filename mapping mechanism is unset.
++If arguments are specified, remote filenames are mapped during
++.Ic mput
++commands and
++.Ic put
++commands issued without a specified remote target filename.
++If arguments are specified, local filenames are mapped during
++.Ic mget
++commands and
++.Ic get
++commands issued without a specified local target filename.
++This command is useful when connecting to a
++.No non\- Ns Ux
++remote computer
++with different file naming conventions or practices.
++The mapping follows the pattern set by
++.Ar inpattern
++and
++.Ar outpattern .
++.Op Ar Inpattern
++is a template for incoming filenames (which may have already been
++processed according to the
++.Ic ntrans
++and
++.Ic case
++settings).
++Variable templating is accomplished by including the
++sequences `$1', `$2', ..., `$9' in
++.Ar inpattern .
++Use `\\' to prevent this special treatment of the `$' character.
++All other characters are treated literally, and are used to determine the
++.Ic nmap
++.Op Ar inpattern
++variable values.
++For example, given
++.Ar inpattern
++$1.$2 and the remote file name "mydata.data", $1 would have the value
++"mydata", and $2 would have the value "data".
++The
++.Ar outpattern
++determines the resulting mapped filename.
++The sequences `$1', `$2', ...., `$9' are replaced by any value resulting
++from the
++.Ar inpattern
++template.
++The sequence `$0' is replace by the original filename.
++Additionally, the sequence
++.Ql Op Ar seq1 , Ar seq2
++is replaced by
++.Op Ar seq1
++if
++.Ar seq1
++is not a null string; otherwise it is replaced by
++.Ar seq2 .
++For example, the command
++.Pp
++.Bd -literal -offset indent -compact
++nmap $1.$2.$3 [$1,$2].[$2,file]
++.Ed
++.Pp
++would yield
++the output filename "myfile.data" for input filenames "myfile.data" and
++"myfile.data.old", "myfile.file" for the input filename "myfile", and
++"myfile.myfile" for the input filename ".myfile".
++Spaces may be included in
++.Ar outpattern ,
++as in the example: `nmap $1 sed "s/ *$//" > $1' .
++Use the `\e' character to prevent special treatment
++of the `$','[','[', and `,' characters.
++.It Ic ntrans Op Ar inchars Op Ar outchars
++Set or unset the filename character translation mechanism.
++If no arguments are specified, the filename character
++translation mechanism is unset.
++If arguments are specified, characters in
++remote filenames are translated during
++.Ic mput
++commands and
++.Ic put
++commands issued without a specified remote target filename.
++If arguments are specified, characters in
++local filenames are translated during
++.Ic mget
++commands and
++.Ic get
++commands issued without a specified local target filename.
++This command is useful when connecting to a
++.No non\- Ns Ux
++remote computer
++with different file naming conventions or practices.
++Characters in a filename matching a character in
++.Ar inchars
++are replaced with the corresponding character in
++.Ar outchars .
++If the character's position in
++.Ar inchars
++is longer than the length of
++.Ar outchars ,
++the character is deleted from the file name.
++.It Ic open Ar host Op Ar port
++Establish a connection to the specified
++.Ar host
++.Tn FTP
++server.
++An optional port number may be supplied,
++in which case,
++.Nm ftp
++will attempt to contact an
++.Tn FTP
++server at that port.
++If the
++.Ic auto-login
++option is on (default),
++.Nm ftp
++will also attempt to automatically log the user in to
++the
++.Tn FTP
++server (see below).
++.It Ic passive
++Toggle passive mode. If passive mode is turned on
++(default is off), the ftp client will
++send a
++.Dv PASV
++command for all data connections instead of the usual
++.Dv PORT
++command. The
++.Dv PASV
++command requests that the remote server open a port for the data connection
++and return the address of that port. The remote server listens on that
++port and the client connects to it. When using the more traditional
++.Dv PORT
++command, the client listens on a port and sends that address to the remote
++server, who connects back to it. Passive mode is useful when using
++.Nm ftp
++through a gateway router or host that controls the directionality of
++traffic.
++(Note that though ftp servers are required to support the
++.Dv PASV
++command by RFC 1123, some do not.)
++.It Ic prompt
++Toggle interactive prompting.
++Interactive prompting
++occurs during multiple file transfers to allow the
++user to selectively retrieve or store files.
++If prompting is turned off (default is on), any
++.Ic mget
++or
++.Ic mput
++will transfer all files, and any
++.Ic mdelete
++will delete all files.
++.It Ic proxy Ar ftp-command
++Execute an ftp command on a secondary control connection.
++This command allows simultaneous connection to two remote ftp
++servers for transferring files between the two servers.
++The first
++.Ic proxy
++command should be an
++.Ic open ,
++to establish the secondary control connection.
++Enter the command "proxy ?" to see other ftp commands executable on the
++secondary connection.
++The following commands behave differently when prefaced by
++.Ic proxy :
++.Ic open
++will not define new macros during the auto-login process,
++.Ic close
++will not erase existing macro definitions,
++.Ic get
++and
++.Ic mget
++transfer files from the host on the primary control connection
++to the host on the secondary control connection, and
++.Ic put ,
++.Ic mput ,
++and
++.Ic append
++transfer files from the host on the secondary control connection
++to the host on the primary control connection.
++Third party file transfers depend upon support of the ftp protocol
++.Dv PASV
++command by the server on the secondary control connection.
++.It Ic put Ar local-file Op Ar remote-file
++Store a local file on the remote machine.
++If
++.Ar remote-file
++is left unspecified, the local file name is used
++after processing according to any
++.Ic ntrans
++or
++.Ic nmap
++settings
++in naming the remote file.
++File transfer uses the
++current settings for
++.Ic type ,
++.Ic format ,
++.Ic mode ,
++and
++.Ic structure .
++.It Ic pwd
++Print the name of the current working directory on the remote
++machine.
++.It Ic quit
++A synonym for
++.Ic bye .
++.It Ic quote Ar arg1 arg2 ...
++The arguments specified are sent, verbatim, to the remote
++.Tn FTP
++server.
++.It Ic recv Ar remote-file Op Ar local-file
++A synonym for get.
++.It Ic reget Ar remote-file Op Ar local-file
++Reget acts like get, except that if
++.Ar local-file
++exists and is
++smaller than
++.Ar remote-file ,
++.Ar local-file
++is presumed to be
++a partially transferred copy of
++.Ar remote-file
++and the transfer
++is continued from the apparent point of failure.
++This command
++is useful when transferring very large files over networks that
++are prone to dropping connections.
++.It Ic remotehelp Op Ar command-name
++Request help from the remote
++.Tn FTP
++server.
++If a
++.Ar command-name
++is specified it is supplied to the server as well.
++.It Ic remotestatus Op Ar file-name
++With no arguments, show status of remote machine.
++If
++.Ar file-name
++is specified, show status of
++.Ar file-name
++on remote machine.
++.It Xo
++.Ic rename
++.Op Ar from
++.Op Ar to
++.Xc
++Rename the file
++.Ar from
++on the remote machine, to the file
++.Ar to .
++.It Ic reset
++Clear reply queue.
++This command re-synchronizes command/reply sequencing with the remote
++ftp server.
++Resynchronization may be necessary following a violation of the ftp protocol
++by the remote server.
++.It Ic restart Ar marker
++Restart the immediately following
++.Ic get
++or
++.Ic put
++at the
++indicated
++.Ar marker .
++On
++.Ux
++systems, marker is usually a byte
++offset into the file.
++.It Ic rmdir Ar directory-name
++Delete a directory on the remote machine.
++.It Ic runique
++Toggle storing of files on the local system with unique filenames.
++If a file already exists with a name equal to the target
++local filename for a
++.Ic get
++or
++.Ic mget
++command, a ".1" is appended to the name.
++If the resulting name matches another existing file,
++a ".2" is appended to the original name.
++If this process continues up to ".99", an error
++message is printed, and the transfer does not take place.
++The generated unique filename will be reported.
++Note that
++.Ic runique
++will not affect local files generated from a shell command
++(see below).
++The default value is off.
++.It Ic send Ar local-file Op Ar remote-file
++A synonym for put.
++.It Ic sendport
++Toggle the use of
++.Dv PORT
++commands.
++By default,
++.Nm ftp
++will attempt to use a
++.Dv PORT
++command when establishing
++a connection for each data transfer.
++The use of
++.Dv PORT
++commands can prevent delays
++when performing multiple file transfers.
++If the
++.Dv PORT
++command fails,
++.Nm ftp
++will use the default data port.
++When the use of
++.Dv PORT
++commands is disabled, no attempt will be made to use
++.Dv PORT
++commands for each data transfer.
++This is useful
++for certain
++.Tn FTP
++implementations which do ignore
++.Dv PORT
++commands but, incorrectly, indicate they've been accepted.
++.It Ic site Ar arg1 arg2 ...
++The arguments specified are sent, verbatim, to the remote
++.Tn FTP
++server as a
++.Dv SITE
++command.
++.It Ic size Ar file-name
++Return size of
++.Ar file-name
++on remote machine.
++.It Ic status
++Show the current status of
++.Nm ftp .
++.It Ic struct Op Ar struct-name
++Set the file transfer
++.Ar structure
++to
++.Ar struct-name .
++By default \*(Lqstream\*(Rq structure is used.
++.It Ic sunique
++Toggle storing of files on remote machine under unique file names.
++Remote ftp server must support ftp protocol
++.Dv STOU
++command for
++successful completion.
++The remote server will report unique name.
++Default value is off.
++.It Ic system
++Show the type of operating system running on the remote machine.
++.It Ic tenex
++Set the file transfer type to that needed to
++talk to
++.Tn TENEX
++machines.
++.It Ic trace
++Toggle packet tracing.
++.It Ic type Op Ar type-name
++Set the file transfer
++.Ic type
++to
++.Ar type-name .
++If no type is specified, the current type
++is printed.
++The default type is network
++.Tn ASCII .
++.It Ic umask Op Ar newmask
++Set the default umask on the remote server to
++.Ar newmask .
++If
++.Ar newmask
++is omitted, the current umask is printed.
++.It Xo
++.Ic user Ar user-name
++.Op Ar password
++.Op Ar account
++.Xc
++Identify yourself to the remote
++.Tn FTP
++server.
++If the
++.Ar password
++is not specified and the server requires it,
++.Nm ftp
++will prompt the user for it (after disabling local echo).
++If an
++.Ar account
++field is not specified, and the
++.Tn FTP
++server
++requires it, the user will be prompted for it.
++If an
++.Ar account
++field is specified, an account command will
++be relayed to the remote server after the login sequence
++is completed if the remote server did not require it
++for logging in.
++Unless
++.Nm ftp
++is invoked with \*(Lqauto-login\*(Rq disabled, this
++process is done automatically on initial connection to
++the
++.Tn FTP
++server.
++.It Ic verbose
++Toggle verbose mode.
++In verbose mode, all responses from
++the
++.Tn FTP
++server are displayed to the user.
++In addition,
++if verbose is on, when a file transfer completes, statistics
++regarding the efficiency of the transfer are reported.
++By default,
++verbose is on.
++.It Ic ? Op Ar command
++A synonym for help.
++.El
++.Pp
++Command arguments which have embedded spaces may be quoted with
++quote `"' marks.
++.Sh ABORTING A FILE TRANSFER
++To abort a file transfer, use the terminal interrupt key
++(usually Ctrl-C).
++Sending transfers will be immediately halted.
++Receiving transfers will be halted by sending a ftp protocol
++.Dv ABOR
++command to the remote server, and discarding any further data received.
++The speed at which this is accomplished depends upon the remote
++server's support for
++.Dv ABOR
++processing.
++If the remote server does not support the
++.Dv ABOR
++command, an
++.Ql ftp>
++prompt will not appear until the remote server has completed
++sending the requested file.
++.Pp
++The terminal interrupt key sequence will be ignored when
++.Nm ftp
++has completed any local processing and is awaiting a reply
++from the remote server.
++A long delay in this mode may result from the ABOR processing described
++above, or from unexpected behavior by the remote server, including
++violations of the ftp protocol.
++If the delay results from unexpected remote server behavior, the local
++.Nm ftp
++program must be killed by hand.
++.Sh FILE NAMING CONVENTIONS
++Files specified as arguments to
++.Nm ftp
++commands are processed according to the following rules.
++.Bl -enum
++.It
++If the file name
++.Sq Fl
++is specified, the
++.Ar stdin
++(for reading) or
++.Ar stdout
++(for writing) is used.
++.It
++If the first character of the file name is
++.Sq \&| ,
++the
++remainder of the argument is interpreted as a shell command.
++.Nm Ftp
++then forks a shell, using
++.Xr popen 3
++with the argument supplied, and reads (writes) from the stdout
++(stdin).
++If the shell command includes spaces, the argument
++must be quoted; e.g.
++\*(Lq" ls -lt"\*(Rq.
++A particularly
++useful example of this mechanism is: \*(Lqdir more\*(Rq.
++.It
++Failing the above checks, if ``globbing'' is enabled,
++local file names are expanded
++according to the rules used in the
++.Xr csh 1 ;
++c.f. the
++.Ic glob
++command.
++If the
++.Nm ftp
++command expects a single local file (.e.g.
++.Ic put ) ,
++only the first filename generated by the "globbing" operation is used.
++.It
++For
++.Ic mget
++commands and
++.Ic get
++commands with unspecified local file names, the local filename is
++the remote filename, which may be altered by a
++.Ic case ,
++.Ic ntrans ,
++or
++.Ic nmap
++setting.
++The resulting filename may then be altered if
++.Ic runique
++is on.
++.It
++For
++.Ic mput
++commands and
++.Ic put
++commands with unspecified remote file names, the remote filename is
++the local filename, which may be altered by a
++.Ic ntrans
++or
++.Ic nmap
++setting.
++The resulting filename may then be altered by the remote server if
++.Ic sunique
++is on.
++.El
++.Sh FILE TRANSFER PARAMETERS
++The FTP specification specifies many parameters which may
++affect a file transfer.
++The
++.Ic type
++may be one of \*(Lqascii\*(Rq, \*(Lqimage\*(Rq (binary),
++\*(Lqebcdic\*(Rq, and \*(Lqlocal byte size\*(Rq (for
++.Tn PDP Ns -10's
++and
++.Tn PDP Ns -20's
++mostly).
++.Nm Ftp
++supports the ascii and image types of file transfer,
++plus local byte size 8 for
++.Ic tenex
++mode transfers.
++.Pp
++.Nm Ftp
++supports only the default values for the remaining
++file transfer parameters:
++.Ic mode ,
++.Ic form ,
++and
++.Ic struct .
++.Sh THE .netrc FILE
++The
++.Pa .netrc
++file contains login and initialization information
++used by the auto-login process.
++It resides in the user's home directory.
++The following tokens are recognized; they may be separated by spaces,
++tabs, or new-lines:
++.Bl -tag -width password
++.It Ic machine Ar name
++Identify a remote machine
++.Ar name .
++The auto-login process searches the
++.Pa .netrc
++file for a
++.Ic machine
++token that matches the remote machine specified on the
++.Nm ftp
++command line or as an
++.Ic open
++command argument.
++Once a match is made, the subsequent
++.Pa .netrc
++tokens are processed,
++stopping when the end of file is reached or another
++.Ic machine
++or a
++.Ic default
++token is encountered.
++.It Ic default
++This is the same as
++.Ic machine
++.Ar name
++except that
++.Ic default
++matches any name.
++There can be only one
++.Ic default
++token, and it must be after all
++.Ic machine
++tokens.
++This is normally used as:
++.Pp
++.Dl default login anonymous password user@site
++.Pp
++thereby giving the user
++.Ar automatic
++anonymous ftp login to
++machines not specified in
++.Pa .netrc .
++This can be overridden
++by using the
++.Fl n
++flag to disable auto-login.
++.It Ic login Ar name
++Identify a user on the remote machine.
++If this token is present, the auto-login process will initiate
++a login using the specified
++.Ar name .
++.It Ic password Ar string
++Supply a password.
++If this token is present, the auto-login process will supply the
++specified string if the remote server requires a password as part
++of the login process.
++Note that if this token is present in the
++.Pa .netrc
++file for any user other
++than
++.Ar anonymous ,
++.Nm ftp
++will abort the auto-login process if the
++.Pa .netrc
++is readable by
++anyone besides the user.
++.It Ic account Ar string
++Supply an additional account password.
++If this token is present, the auto-login process will supply the
++specified string if the remote server requires an additional
++account password, or the auto-login process will initiate an
++.Dv ACCT
++command if it does not.
++.It Ic macdef Ar name
++Define a macro.
++This token functions like the
++.Nm ftp
++.Ic macdef
++command functions.
++A macro is defined with the specified name; its contents begin with the
++next
++.Pa .netrc
++line and continue until a null line (consecutive new-line
++characters) is encountered.
++If a macro named
++.Ic init
++is defined, it is automatically executed as the last step in the
++auto-login process.
++.El
++.Sh ENVIRONMENT
++.Nm Ftp
++utilizes the following environment variables.
++.Bl -tag -width Fl
++.It Ev HOME
++For default location of a
++.Pa .netrc
++file, if one exists.
++.It Ev SHELL
++For default shell.
++.El
++.Sh SEE ALSO
++.Xr ftpd 8
++.Sh HISTORY
++The
++.Nm ftp
++command appeared in
++.Bx 4.2 .
++.Sh BUGS
++Correct execution of many commands depends upon proper behavior
++by the remote server.
++.Pp
++An error in the treatment of carriage returns
++in the
++.Bx 4.2
++ascii-mode transfer code
++has been corrected.
++This correction may result in incorrect transfers of binary files
++to and from
++.Bx 4.2
++servers using the ascii type.
++Avoid this problem by using the binary image type.
+diff --git a/ftpd/Makefile.am b/ftpd/Makefile.am
+index 861fe61..7096935 100644
+--- a/ftpd/Makefile.am
++++ b/ftpd/Makefile.am
+@@ -28,6 +28,12 @@ ftpd_SOURCES = ftpcmd.y ftpd.c logwtmp.c popen.c pam.c auth.c \
+
+ noinst_HEADERS = extern.h
+
++if ENABLE_ftpd
++man_MANS = ftpd.8
++endif
++
++EXTRA_DIST = $(man_MANS) ftpcmd.c
++
+ @PATHDEFS_MAKE@
+
+ INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils
+@@ -37,5 +43,3 @@ AM_CPPFLAGS = $(PATHDEF_FTPWELCOME) $(PATHDEF_FTPUSERS) \
+
+ LDADD = -L../libinetutils -linetutils $(LIBLS) ../lib/libgnu.a \
+ $(LIBCRYPT) $(LIBWRAP) $(LIBPAM)
+-
+-EXTRA_DIST = ftpcmd.c
+diff --git a/ftpd/ftpd.8 b/ftpd/ftpd.8
+new file mode 100644
+index 0000000..e842141
+--- /dev/null
++++ b/ftpd/ftpd.8
+@@ -0,0 +1,300 @@
++.\" Copyright (c) 1985, 1988, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)ftpd.8 8.3 (Berkeley) 6/1/94
++.\"
++.Dd June 1, 1994
++.Dt FTPD 8
++.Os BSD 4.2
++.Sh NAME
++.Nm ftpd
++.Nd
++Internet File Transfer Protocol server
++.Sh SYNOPSIS
++.Nm ftpd
++.Op Fl dlADq
++.Op Fl T Ar maxtimeout
++.Op Fl t Ar timeout
++.Op Fl a Ar login-name
++.Sh DESCRIPTION
++.Nm Ftpd
++is the
++Internet File Transfer Protocol
++server process. The server uses the
++.Tn TCP
++protocol
++and listens at the port specified in the
++.Dq ftp
++service specification; see
++.Xr services 5 .
++.Pp
++Available options:
++.Bl -tag -width Ds
++.It Fl d
++Debugging information is written to the syslog
++using LOG_FTP.
++.It Fl l
++Each successful and failed
++.Xr ftp 1
++session is logged using syslog with a facility of LOG_FTP.
++If this option is specified twice, the retrieve (get), store (put), append,
++delete, make directory, remove directory and rename operations and
++their filename arguments are also logged.
++.It Fl A
++Only anonymous login is allowed.
++.It Fl D
++ftpd enters daemon-mode. That allows ftpd to be run without inetd.
++.It Fl q
++Quiet mode. No information about the version of the ftpd is given to the
++client.
++.It Fl T
++A client may also request a different timeout period;
++the maximum period allowed may be set to
++.Ar timeout
++seconds with the
++.Fl T
++option.
++The default limit is 2 hours.
++.It Fl t
++The inactivity timeout period is set to
++.Ar timeout
++seconds (the default is 15 minutes).
++.It Fl a
++Give anonymous an other
++.Ar login-name
++(anonymous and ftpd will still work).
++.El
++.Pp
++The file
++.Pa /etc/nologin
++can be used to disable ftp access.
++If the file exists,
++.Nm
++displays it and exits.
++If the file
++.Pa /etc/ftpwelcome
++exists,
++.Nm
++prints it before issuing the
++.Dq ready
++message.
++If the file
++.Pa /etc/motd
++exists,
++.Nm
++prints it after a successful login.
++.Pp
++The ftp server currently supports the following ftp requests.
++The case of the requests is ignored.
++.Bl -column "Request" -offset indent
++.It Request Ta "Description"
++.It ABOR Ta "abort previous command"
++.It ACCT Ta "specify account (ignored)"
++.It ALLO Ta "allocate storage (vacuously)"
++.It APPE Ta "append to a file"
++.It CDUP Ta "change to parent of current working directory"
++.It CWD Ta "change working directory"
++.It DELE Ta "delete a file"
++.It HELP Ta "give help information"
++.It LIST Ta "give list files in a directory" Pq Dq Li "ls -lgA"
++.It MKD Ta "make a directory"
++.It MDTM Ta "show last modification time of file"
++.It MODE Ta "specify data transfer" Em mode
++.It NLST Ta "give name list of files in directory"
++.It NOOP Ta "do nothing"
++.It PASS Ta "specify password"
++.It PASV Ta "prepare for server-to-server transfer"
++.It PORT Ta "specify data connection port"
++.It PWD Ta "print the current working directory"
++.It QUIT Ta "terminate session"
++.It REST Ta "restart incomplete transfer"
++.It RETR Ta "retrieve a file"
++.It RMD Ta "remove a directory"
++.It RNFR Ta "specify rename-from file name"
++.It RNTO Ta "specify rename-to file name"
++.It SITE Ta "non-standard commands (see next section)"
++.It SIZE Ta "return size of file"
++.It STAT Ta "return status of server"
++.It STOR Ta "store a file"
++.It STOU Ta "store a file with a unique name"
++.It STRU Ta "specify data transfer" Em structure
++.It SYST Ta "show operating system type of server system"
++.It TYPE Ta "specify data transfer" Em type
++.It USER Ta "specify user name"
++.It XCUP Ta "change to parent of current working directory (deprecated)"
++.It XCWD Ta "change working directory (deprecated)"
++.It XMKD Ta "make a directory (deprecated)"
++.It XPWD Ta "print the current working directory (deprecated)"
++.It XRMD Ta "remove a directory (deprecated)"
++.El
++.Pp
++The following non-standard or
++.Tn UNIX
++specific commands are supported
++by the
++SITE request.
++.Pp
++.Bl -column Request -offset indent
++.It Sy Request Ta Sy Description
++.It UMASK Ta change umask, e.g. ``SITE UMASK 002''
++.It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60''
++.It CHMOD Ta change mode of a file, e.g. ``SITE CHMOD 755 filename''
++.It HELP Ta give help information.
++.El
++.Pp
++The remaining ftp requests specified in Internet RFC 959
++are
++recognized, but not implemented.
++MDTM and SIZE are not specified in RFC 959, but will appear in the
++next updated FTP RFC.
++.Pp
++The ftp server will abort an active file transfer only when the
++ABOR
++command is preceded by a Telnet "Interrupt Process" (IP)
++signal and a Telnet "Synch" signal in the command Telnet stream,
++as described in Internet RFC 959.
++If a
++STAT
++command is received during a data transfer, preceded by a Telnet IP
++and Synch, transfer status will be returned.
++.Pp
++.Nm Ftpd
++interprets file names according to the
++.Dq globbing
++conventions used by
++.Xr csh 1 .
++This allows users to utilize the metacharacters
++.Dq Li \&*?[]{}~ .
++.Pp
++.Nm Ftpd
++authenticates users according to three rules.
++.Pp
++.Bl -enum -offset indent
++.It
++The login name must be in the password data base,
++.Pa /etc/passwd ,
++and not have a null password.
++In this case a password must be provided by the client before any
++file operations may be performed.
++.It
++The login name must not appear in the file
++.Pa /etc/ftpusers .
++.It
++The user must have a standard shell returned by
++.Xr getusershell 3 .
++.It
++If the user name is
++.Dq anonymous
++or
++.Dq ftp ,
++an
++anonymous ftp account must be present in the password
++file (user
++.Dq ftp ) .
++In this case the user is allowed
++to log in by specifying any password (by convention an email address for
++the user should be used as the password).
++.El
++.Pp
++In the last case,
++.Nm ftpd
++takes special measures to restrict the client's access privileges.
++The server performs a
++.Xr chroot 2
++to the home directory of the
++.Dq ftp
++user.
++In order that system security is not breached, it is recommended
++that the
++.Dq ftp
++subtree be constructed with care, following these rules:
++.Bl -tag -width "~ftp/pub" -offset indent
++.It Pa ~ftp
++Make the home directory owned by
++.Dq root
++and unwritable by anyone.
++.ne 1i
++.It Pa ~ftp/bin
++Make this directory owned by
++.Dq root
++and unwritable by anyone (mode 555).
++The program
++.Xr ls 1
++must be present to support the list command.
++This program should be mode 111.
++.It Pa ~ftp/etc
++Make this directory owned by
++.Dq root
++and unwritable by anyone (mode 555).
++The files
++.Xr passwd 5
++and
++.Xr group 5
++must be present for the
++.Xr ls
++command to be able to produce owner names rather than numbers.
++The password field in
++.Xr passwd
++is not used, and should not contain real passwords.
++The file
++.Pa motd ,
++if present, will be printed after a successful login.
++These files should be mode 444.
++.It Pa ~ftp/pub
++Make this directory mode 777 and owned by
++.Dq ftp .
++Guests
++can then place files which are to be accessible via the anonymous
++account in this directory.
++.El
++.Sh FILES
++.Bl -tag -width /etc/ftpwelcome -compact
++.It Pa /etc/ftpusers
++List of unwelcome/restricted users.
++.It Pa /etc/ftpwelcome
++Welcome notice.
++.It Pa /etc/motd
++Welcome notice after login.
++.It Pa /etc/nologin
++Displayed and access refused.
++.El
++.Sh SEE ALSO
++.Xr ftp 1 ,
++.Xr getusershell 3 ,
++.Xr syslogd 8
++.Sh BUGS
++The server must run as the super-user
++to create sockets with privileged port numbers. It maintains
++an effective user id of the logged in user, reverting to
++the super-user only when binding addresses to sockets. The
++possible security holes have been extensively
++scrutinized, but are possibly incomplete.
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.2 .
+diff --git a/whois/whois.1 b/whois/whois.1
+new file mode 100644
+index 0000000..7424da8
+--- /dev/null
++++ b/whois/whois.1
+@@ -0,0 +1,96 @@
++.TH WHOIS 1 "3 December 1999" "Marco d'Itri" "Debian GNU/Linux"
++.SH NAME
++whois \- client for the whois directory service
++.SH SYNOPSIS
++.B whois
++[\~\fB-h\fP\~\fIHOST\fP\~]
++[\~\fB-p\fP\~ \fIPORT\fP\~]
++[\~\fB-aCFHlLMmrRSVx\fP\~]
++[\~\fB-g\fP\~\fISOURCE:FIRST-LAST\fP\~]
++[\~\fB-i\fP\~\fIATTR\fP\~]
++[\~\fB-S\fP\~\fISOURCE\fP\~]
++[\~\fB-T\fP\~\fITYPE\fP\~]
++.I object
++
++.B whois
++[\~\fI-t\fP\~]
++[\~\fI-v\fP\~]
++.I template
++.B whois
++[\~\fI-q\fP\~]
++.I keyword
++.PP
++.SH DESCRIPTION
++\fBwhois\fP searches for an object in a \fIRFC-812\fP database.
++
++This version of the whois client tries to guess the right server to
++ask for the specified object. If no guess can be made it will connect
++to whois.internic.net for domains,
++.\" whois.networksolutions.com for nic handles,
++whois.arin.net for IPv4 addresses and whois.6bone.net for
++IPv6 addresses.
++.PP
++.SH OPTIONS
++.TP 8
++.B \-h HOST
++Connect to HOST.
++.TP 8
++.B \-H
++Do not display the legal disclaimers some registries like to show you.
++.TP 8
++.B \-p PORT
++Connect to PORT.
++.TP 8
++.B \-V
++Be verbose.
++.TP 8
++Other options are flags understood by RIPE-like servers.
++.SH NOTES
++Please remember that \fIwhois.networksolutions.com\fP by default will
++only search in the domains database. If you want to search for hostnames,
++NIC handles or people names you have to prepend the appropriate keyword
++(\fIHO\fPst, \fIHA\fPndle or \fINA\fPme).
++.P
++If the \fI!\fP character is prepended to a NIC handle, the default
++server becomes \fIwhois.networksolutions.com\fP.
++.P
++When querying \fIwhois.arin.net\fP for AS numbers, the program will
++automatically convert the request in the appropriate format, inserting
++a space after the string "AS".
++.P
++When querying \fIwhois.ncst.ernet.in\fP for a string without spaces, the
++\fIdomain\fP keyword is prepended.
++.P
++When querying \fIwhois.corenic.net\fP, machine readable output is requested.
++.P
++RIPE-specific options are ignored when querying non-RIPE servers.
++.SH ENVIRONMENT
++.IP LANG
++When querying \fIwhois.nic.ad.jp\fP english text is requested unless the
++\fILANG\fP environment variable specifies a Japanese locale.
++.IP "WHOIS_SERVER"
++This server will be queried if the program cannot guess where the object
++is located. If the variable does not exist then
++\fIwhois.internic.net\fP will be queried.
++.IP "WHOIS_HIDE"
++If this variable is defined, legal disclaimers will be hidden even if
++the \fI-H\fP flag is not used.
++.SH "SEE ALSO"
++\fIRFC 812\fP: NICNAME/WHOIS
++.PP
++\fIRIPE-157\fP, \fIRIPE-189\fP: RIPE NCC Database Documentation
++.PP
++Detailed help on available flags can be found in \fIRIPE-157\fP or in
++the help file which can be obtained with the command:
++.IP
++.B whois -h whois.ripe.net HELP
++.SH HISTORY
++This program closely tracks the user interface of the whois client
++developed at RIPE by Ambrose Magee and others on the base of the
++original BSD client.
++I also added support for the protocol extensions developed by David
++Kessens of QWest for the 6bone server.
++.SH AUTHOR
++.B Whois
++and this man page were written by Marco d'Itri <\fImd@linux.it\fP>
++and are licensed under the GPL.
+diff --git a/libls/Makefile.am b/libls/Makefile.am
+index b5fe1f5..e8be015 100644
+--- a/libls/Makefile.am
++++ b/libls/Makefile.am
+@@ -26,3 +26,5 @@ libls_a_SOURCES = cmp.c stat_flags.c ls.c print.c util.c fts.c
+ noinst_HEADERS = extern.h ls.h fts.h
+
+ INCLUDES=-I$(top_srcdir)/lib -I../lib
++
++EXTRA_DIST = ls.1
+diff --git a/libls/ls.1 b/libls/ls.1
+new file mode 100644
+index 0000000..04231ea
+--- /dev/null
++++ b/libls/ls.1
+@@ -0,0 +1,446 @@
++.\" $OpenBSD: ls.1,v 1.23 2000/03/24 21:41:08 aaron Exp $
++.\" $NetBSD: ls.1,v 1.14 1995/12/05 02:44:01 jtc Exp $
++.\"
++.\" Copyright (c) 1980, 1990, 1991, 1993, 1994
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" This code is derived from software contributed to Berkeley by
++.\" the Institute of Electrical and Electronics Engineers, Inc.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)ls.1 8.7 (Berkeley) 7/29/94
++.\"
++.Dd July 29, 1994
++.Dt LS 1
++.Os
++.Sh NAME
++.Nm ls
++.Nd list directory contents
++.Sh SYNOPSIS
++.Nm ls
++.Op Fl 1ACFLRSTWacdfgiklmnopqrstux
++.Op Ar file ...
++.Sh DESCRIPTION
++For each operand that names a
++.Ar file
++of a type other than
++directory,
++.Nm
++displays its name as well as any requested,
++associated information.
++For each operand that names a
++.Ar file
++of type directory,
++.Nm
++displays the names of files contained
++within that directory, as well as any requested, associated
++information.
++.Pp
++If no operands are given, the contents of the current
++directory are displayed.
++If more than one operand is given,
++non-directory operands are displayed first; directory
++and non-directory operands are sorted separately and in
++lexicographical order.
++.Pp
++The options are as follows:
++.Bl -tag -width indent
++.It Fl A
++List all entries except for
++.Dq \&.
++and
++.Dq \&.. .
++Always set for the super-user.
++.It Fl C
++Force multi-column output; this is the default when output is to a terminal.
++.It Fl F
++Display a slash
++.Pq Sq /
++immediately after each pathname that is a directory,
++an asterisk
++.Pq Sq \&*
++after each that is executable,
++an at sign
++.Pq Sq @
++after each symbolic link,
++a percent sign
++.Pq Sq %
++after each whiteout,
++an equal sign
++.Pq Sq =
++after each socket,
++and a vertical bar
++.Pq Sq \&|
++after each that is a FIFO.
++.It Fl L
++If argument is a symbolic link, list the file or directory the link references
++rather than the link itself.
++.It Fl R
++Recursively list subdirectories encountered.
++.It Fl S
++Sort by size, largest file first.
++.It Fl T
++Display complete time information for the file, including
++month, day, hour, minute, second, and year.
++This option has no effect unless one of the long format
++.Pq Fl l , Fl n
++options is also specified.
++.It Fl W
++Display whiteouts when scanning directories.
++.It Fl a
++Include directory entries whose names begin with a
++dot
++.Pq Sq \&. .
++.It Fl c
++Use time file's status was last changed instead of last modification
++time for sorting
++.Pq Fl t
++or printing
++.Pq Fl l , Fl n .
++.It Fl d
++Directories are listed as plain files (not searched recursively) and
++symbolic links in the argument list are not indirected through.
++.It Fl f
++Output is not sorted.
++.It Fl g
++Does nothing; kept for compatibility with older versions of
++.Xr ls 1 .
++.It Fl i
++For each file, print its inode number.
++.It Fl k
++Modifies the
++.Fl s
++option, causing the sizes to be reported in kilobytes.
++Overrides any value specified by the
++.Ev BLOCKSIZE
++environment variable.
++.It Fl l
++(The lowercase letter
++.Dq ell. Ns )
++List in long format (see below).
++If the output is to a terminal, a total sum of all file
++sizes is output on a line before the long listing.
++.It Fl m
++Stream output format; list files across the page, separated by commas.
++.It Fl n
++List in long format as in
++.Fl l ,
++but retain user and group IDs in a numeric format.
++.It Fl o
++Include the file flags in a long format
++.Pq Fl l , Fl n
++output.
++.It Fl p
++Display a slash
++.Pq Sq \&/
++immediately after each pathname that is a directory.
++.It Fl q
++Force printing of non-graphic characters in file names as
++the character
++.Dq ? ;
++this is the default when output is to a terminal.
++.It Fl r
++Reverse the order of the sort to get reverse
++lexicographical order or the smallest or oldest entries first.
++.It Fl s
++Display the number of file system blocks actually used by each file,
++where partial units are rounded up to the next integer value.
++Blocks are 512 bytes unless overridden by the
++.Fl k
++flag or
++.Ev BLOCKSIZE
++environment variable.
++.It Fl t
++Sort by time modified (most recently modified
++first) before sorting the operands in lexicographical
++order.
++.It Fl u
++Use file's last access time
++instead of last modification time
++for sorting
++.Pq Fl t
++or printing
++.Pq Fl l , Fl n .
++.It Fl x
++Multi-column output sorted across the page rather than down the page.
++.It Fl \&1
++(The numeric digit
++.Dq one. Ns )
++Force output to be one entry per line.
++This is the default when
++output is not to a terminal.
++.El
++.Pp
++The
++.Fl 1 ,
++.Fl C ,
++.Fl l ,
++and
++.Fl n
++options all override each other; the last one specified determines
++the format used.
++.Pp
++The
++.Fl c
++and
++.Fl u
++options override each other; the last one specified determines
++the file time used.
++The
++.Fl f
++option overrides any occurrence of either.
++.Pp
++By default,
++.Nm
++lists one entry per line to standard
++output; the exceptions are to terminals or when the
++.Fl C
++or
++.Fl m
++options are specified.
++.Pp
++File information is displayed with one or more
++<blank>s separating the information associated with the
++.Fl i ,
++.Fl s ,
++.Fl l ,
++and
++.Fl n
++options.
++.Ss The Long Format
++If the
++.Fl l
++or
++.Fl n
++options are given, the following information
++is displayed for each file:
++mode,
++number of links,
++owner,
++group,
++size in bytes,
++time of last modification
++.Pq Dq mmm dd HH:MM ,
++and the pathname.
++In addition, for each directory whose contents are displayed, the first
++line displayed is the total number of blocks used by the files in the
++directory.
++Blocks are 512 bytes unless overridden by the
++.Fl k
++option or
++.Ev BLOCKSIZE
++environment variable.
++.Pp
++If the owner or group name is not a known user or group name, respectively,
++or the
++.Fl n
++option is given, the numeric ID is displayed.
++.Pp
++If the file is a character special or block special file,
++the major and minor device numbers for the file are displayed
++in the size field.
++.Pp
++If the
++.Fl T
++option is given, the time of last modification is displayed using the
++format
++.Dq mmm dd HH:MM:SS CCYY .
++.Pp
++If the file is a symbolic link, the pathname of the
++linked-to file is preceded by
++.Dq \-> .
++.Pp
++The file mode printed under the
++.Fl l
++or
++.Fl n
++options consists of the entry type, owner permissions, and group
++permissions.
++The entry type character describes the type of file, as follows:
++.Pp
++.Bl -tag -width 4n -offset indent -compact
++.It Sy b
++block special file
++.It Sy c
++character special file
++.It Sy d
++directory
++.It Sy l
++symbolic link
++.It Sy s
++socket link
++.It Sy p
++.Tn FIFO
++.It Sy w
++whiteout
++.It Sy \-
++regular file
++.El
++.Pp
++The next three fields
++are three characters each:
++owner permissions,
++group permissions, and
++other permissions.
++Each field has three character positions:
++.Pp
++.Bl -enum -offset indent -compact
++.It
++If
++.Sy r ,
++the file is readable; if
++.Sy \- ,
++it is not readable.
++.It
++If
++.Sy w ,
++the file is writable; if
++.Sy \- ,
++it is not writable.
++.It
++The first of the following that applies:
++.Bl -tag -width 4n -offset indent
++.It Sy S
++If in the owner permissions, the file is not executable and
++set-user-ID mode is set.
++If in the group permissions, the file is not executable
++and set-group-ID mode is set.
++.It Sy s
++If in the owner permissions, the file is executable
++and set-user-ID mode is set.
++If in the group permissions, the file is executable
++and setgroup-ID mode is set.
++.It Sy x
++The file is executable or the directory is
++searchable.
++.It Sy \-
++The file is neither readable, writable, executable,
++nor set-user-ID, nor set-group-ID, nor sticky (see below).
++.El
++.Pp
++These next two apply only to the third character in the last group
++(other permissions):
++.Bl -tag -width 4n -offset indent
++.It Sy T
++The sticky bit is set
++(mode
++.Li 1000 ) ,
++but neither executable nor searchable (see
++.Xr chmod 1
++or
++.Xr sticky 8 ) .
++.It Sy t
++The sticky bit is set (mode
++.Li 1000 ) ,
++and is searchable or executable
++(see
++.Xr chmod 1
++or
++.Xr sticky 8 ) .
++.El
++.El
++.Pp
++In addition, if the
++.Fl o
++option is specified, the file flags (see
++.Xr chflags 1 )
++are displayed as comma-separated strings in front of the file size,
++abbreviated as follows:
++.Pp
++.Bl -tag -width 8n -offset indent -compact
++.It \&-
++no flags
++.It uappnd
++user append-only
++.It uchg
++user immutable
++.It nodump
++do not dump
++.It opaque
++opaque file
++.It sappnd
++system append-only
++.It arch
++archived
++.It schg
++system immutable
++.El
++.Pp
++The
++.Nm
++utility exits 0 on success or >0 if an error occurred.
++.Sh ENVIRONMENT
++The following environment variables affect the execution of
++.Nm ls :
++.Bl -tag -width BLOCKSIZE
++.It Ev BLOCKSIZE
++If the environment variable
++.Ev BLOCKSIZE
++is set, and the
++.Fl k
++option is not specified, the block counts
++(see
++.Fl s )
++will be displayed in units of that size block.
++.It COLUMNS
++If this variable contains a string representing a
++decimal integer, it is used as the
++column position width for displaying
++multiple-text-column output.
++The
++.Nm
++utility calculates how
++many pathname text columns to display
++based on the width provided
++(see
++.Fl C ) .
++.It Ev TZ
++The timezone to use when displaying dates.
++See
++.Xr environ 7
++for more information.
++.El
++.Sh COMPATIBILITY
++The group field is now automatically included in the long listing for
++files in order to be compatible with the
++.St -p1003.2
++specification.
++.Sh SEE ALSO
++.Xr chflags 1 ,
++.Xr chmod 1 ,
++.Xr symlink 7 ,
++.Xr sticky 8
++.Sh HISTORY
++An
++.Nm
++utility appeared in
++.At v5 .
++.Sh STANDARDS
++The
++.Nm
++utility is expected to be a superset of the
++.St -p1003.2
++specification.
+diff --git a/ping/Makefile.am b/ping/Makefile.am
+index 33584dd..a67d5bc 100644
+--- a/ping/Makefile.am
++++ b/ping/Makefile.am
+@@ -21,6 +21,12 @@ bin_PROGRAMS = @ping_BUILD@ @ping6_BUILD@
+
+ EXTRA_PROGRAMS = ping ping6
+
++if ENABLE_ping
++man_MANS = ping.8
++endif
++
++EXTRA_DIST = $(man_MANS)
++
+ ping_LDADD = -L../libinetutils -linetutils -L../libicmp -licmp ../lib/libgnu.a
+ ping6_LDADD = ../lib/libgnu.a -L../libinetutils -linetutils
+ INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libicmp \
+@@ -42,3 +48,5 @@ install-ping-hook:
+ done
+
+ install-exec-hook: @ping_INSTALL_HOOK@
++
++# EOF
+diff --git a/ping/ping.8 b/ping/ping.8
+new file mode 100755
+index 0000000..2382365
+--- /dev/null
++++ b/ping/ping.8
+@@ -0,0 +1,328 @@
++.\" Copyright (c) 1985, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\" must display the following acknowledgement:
++.\" This product includes software developed by the University of
++.\" California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)ping.8 8.3 (Berkeley) 4/28/95
++.\"
++.Dd April 28, 1995
++.Dt PING 8
++.Os BSD 4.3
++.Sh NAME
++.Nm ping
++.Nd send
++.Tn ICMP ECHO_REQUEST
++packets to network hosts
++.Sh SYNOPSIS
++.Nm ping
++.Op Fl Rdfnqrv
++.Op Fl c Ar count
++.Op Fl i Ar wait
++.Op Fl l Ar preload
++.Op Fl p Ar pattern
++.Op Fl s Ar packetsize
++.Ar host
++.Sh DESCRIPTION
++.Nm Ping
++uses the
++.Tn ICMP
++protocol's mandatory
++.Tn ECHO_REQUEST
++datagram to elicit an
++.Tn ICMP ECHO_RESPONSE
++from a host or gateway.
++.Tn ECHO_REQUEST
++datagrams (``pings'') have an IP and
++.Tn ICMP
++header,
++followed by a
++.Dq struct timeval
++and then an arbitrary number of ``pad'' bytes used to fill out the
++packet.
++The options are as follows:
++.Bl -tag -width Ds
++.It Fl c Ar count
++Stop after sending (and receiving)
++.Ar count
++.Tn ECHO_RESPONSE
++packets.
++.It Fl d
++Set the
++.Dv SO_DEBUG
++option on the socket being used.
++.It Fl f
++Flood ping.
++Outputs packets as fast as they come back or one hundred times per second,
++whichever is more.
++For every
++.Tn ECHO_REQUEST
++sent a period ``.'' is printed, while for every
++.Tn ECHO_REPLY
++received a backspace is printed.
++This provides a rapid display of how many packets are being dropped.
++Only the super-user may use this option.
++.Bf -emphasis
++This can be very hard on a network and should be used with caution.
++.Ef
++.It Fl i Ar wait
++Wait
++.Ar wait
++seconds
++.Em between sending each packet .
++The default is to wait for one second between each packet.
++This option is incompatible with the
++.Fl f
++option.
++.It Fl l Ar preload
++If
++.Ar preload
++is specified,
++.Nm ping
++sends that many packets as fast as possible before falling into its normal
++mode of behavior.
++.It Fl n
++Numeric output only.
++No attempt will be made to lookup symbolic names for host addresses.
++.It Fl p Ar pattern
++You may specify up to 16 ``pad'' bytes to fill out the packet you send.
++This is useful for diagnosing data-dependent problems in a network.
++For example,
++.Dq Li \-p ff
++will cause the sent packet to be filled with all
++ones.
++.It Fl q
++Quiet output.
++Nothing is displayed except the summary lines at startup time and
++when finished.
++.It Fl R
++Record route.
++Includes the
++.Tn RECORD_ROUTE
++option in the
++.Tn ECHO_REQUEST
++packet and displays
++the route buffer on returned packets.
++Note that the IP header is only large enough for nine such routes.
++Many hosts ignore or discard this option.
++.It Fl r
++Bypass the normal routing tables and send directly to a host on an attached
++network.
++If the host is not on a directly-attached network, an error is returned.
++This option can be used to ping a local host through an interface
++that has no route through it (e.g., after the interface was dropped by
++.Xr routed 8 ) .
++.It Fl s Ar packetsize
++Specifies the number of data bytes to be sent.
++The default is 56, which translates into 64
++.Tn ICMP
++data bytes when combined
++with the 8 bytes of
++.Tn ICMP
++header data.
++.It Fl v
++Verbose output.
++.Tn ICMP
++packets other than
++.Tn ECHO_RESPONSE
++that are received are listed.
++.El
++.Pp
++When using
++.Nm ping
++for fault isolation, it should first be run on the local host, to verify
++that the local network interface is up and running.
++Then, hosts and gateways further and further away should be ``pinged''.
++Round-trip times and packet loss statistics are computed.
++If duplicate packets are received, they are not included in the packet
++loss calculation, although the round trip time of these packets is used
++in calculating the minimum/average/maximum round-trip time numbers.
++When the specified number of packets have been sent (and received) or
++if the program is terminated with a
++.Dv SIGINT ,
++a brief summary is displayed.
++.Pp
++This program is intended for use in network testing, measurement and
++management.
++Because of the load it can impose on the network, it is unwise to use
++.Nm ping
++during normal operations or from automated scripts.
++.Sh ICMP PACKET DETAILS
++An IP header without options is 20 bytes.
++An
++.Tn ICMP
++.Tn ECHO_REQUEST
++packet contains an additional 8 bytes worth
++of
++.Tn ICMP
++header followed by an arbitrary amount of data.
++When a
++.Ar packetsize
++is given, this indicated the size of this extra piece of data (the
++default is 56).
++Thus the amount of data received inside of an IP packet of type
++.Tn ICMP
++.Tn ECHO_REPLY
++will always be 8 bytes more than the requested data space
++(the
++.Tn ICMP
++header).
++.Pp
++If the data space is at least eight bytes large,
++.Nm ping
++uses the first eight bytes of this space to include a timestamp which
++it uses in the computation of round trip times.
++If less than eight bytes of pad are specified, no round trip times are
++given.
++.Sh DUPLICATE AND DAMAGED PACKETS
++.Nm Ping
++will report duplicate and damaged packets.
++Duplicate packets should never occur, and seem to be caused by
++inappropriate link-level retransmissions.
++Duplicates may occur in many situations and are rarely (if ever) a
++good sign, although the presence of low levels of duplicates may not
++always be cause for alarm.
++.Pp
++Damaged packets are obviously serious cause for alarm and often
++indicate broken hardware somewhere in the
++.Nm ping
++packet's path (in the network or in the hosts).
++.Sh TRYING DIFFERENT DATA PATTERNS
++The (inter)network layer should never treat packets differently depending
++on the data contained in the data portion.
++Unfortunately, data-dependent problems have been known to sneak into
++networks and remain undetected for long periods of time.
++In many cases the particular pattern that will have problems is something
++that doesn't have sufficient ``transitions'', such as all ones or all
++zeros, or a pattern right at the edge, such as almost all zeros.
++It isn't necessarily enough to specify a data pattern of all zeros (for
++example) on the command line because the pattern that is of interest is
++at the data link level, and the relationship between what you type and
++what the controllers transmit can be complicated.
++.Pp
++This means that if you have a data-dependent problem you will probably
++have to do a lot of testing to find it.
++If you are lucky, you may manage to find a file that either can't be sent
++across your network or that takes much longer to transfer than other
++similar length files.
++You can then examine this file for repeated patterns that you can test
++using the
++.Fl p
++option of
++.Nm ping .
++.Sh TTL DETAILS
++The
++.Tn TTL
++value of an IP packet represents the maximum number of IP routers
++that the packet can go through before being thrown away.
++In current practice you can expect each router in the Internet to decrement
++the
++.Tn TTL
++field by exactly one.
++.Pp
++The
++.Tn TCP/IP
++specification states that the
++.Tn TTL
++field for
++.Tn TCP
++packets should
++be set to 60, but many systems use smaller values (4.3
++.Tn BSD
++uses 30, 4.2 used
++15).
++.Pp
++The maximum possible value of this field is 255, and most Unix systems set
++the
++.Tn TTL
++field of
++.Tn ICMP ECHO_REQUEST
++packets to 255.
++This is why you will find you can ``ping'' some hosts, but not reach them
++with
++.Xr telnet 1
++or
++.Xr ftp 1 .
++.Pp
++In normal operation ping prints the ttl value from the packet it receives.
++When a remote system receives a ping packet, it can do one of three things
++with the
++.Tn TTL
++field in its response:
++.Bl -bullet
++.It
++Not change it; this is what Berkeley Unix systems did before the
++.Bx 4.3 tahoe
++release.
++In this case the
++.Tn TTL
++value in the received packet will be 255 minus the
++number of routers in the round-trip path.
++.It
++Set it to 255; this is what current Berkeley Unix systems do.
++In this case the
++.Tn TTL
++value in the received packet will be 255 minus the
++number of routers in the path
++.Xr from
++the remote system
++.Em to
++the
++.Nm ping Ns Em ing
++host.
++.It
++Set it to some other value.
++Some machines use the same value for
++.Tn ICMP
++packets that they use for
++.Tn TCP
++packets, for example either 30 or 60.
++Others may use completely wild values.
++.El
++.Sh BUGS
++Many Hosts and Gateways ignore the
++.Tn RECORD_ROUTE
++option.
++.Pp
++The maximum IP header length is too small for options like
++.Tn RECORD_ROUTE
++to
++be completely useful.
++There's not much that that can be done about this, however.
++.Pp
++Flood pinging is not recommended in general, and flood pinging the
++broadcast address should only be done under very controlled conditions.
++.Sh SEE ALSO
++.Xr netstat 1 ,
++.Xr ifconfig 8 ,
++.Xr routed 8
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.3 .
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e19a0ce..c893100 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -24,6 +24,43 @@ inetdaemon_PROGRAMS =
+ bin_PROGRAMS =
+ EXTRA_PROGRAMS =
+
++man_MANS =
++
++if ENABLE_inetd
++man_MANS += inetd.8
++endif
++if ENABLE_logger
++man_MANS += logger.1
++endif
++if ENABLE_rcp
++man_MANS += rcp.1
++endif
++if ENABLE_rexecd
++man_MANS += rexecd.8
++endif
++if ENABLE_rlogin
++man_MANS += rlogin.1
++endif
++if ENABLE_rlogind
++man_MANS += rlogind.8
++endif
++if ENABLE_rsh
++man_MANS += rsh.1
++endif
++if ENABLE_rshd
++man_MANS += rshd.8
++endif
++if ENABLE_syslogd
++man_MANS += syslog.conf.5 syslogd.8
++endif
++if ENABLE_tftp
++man_MANS += tftp.1
++endif
++if ENABLE_tftpd
++man_MANS += tftpd.8
++endif
++
++EXTRA_DIST = $(man_MANS)
+
+ bin_PROGRAMS += @hostname_BUILD@
+ hostname_SOURCES = hostname.c
+diff --git a/src/inetd.8 b/src/inetd.8
+new file mode 100644
+index 0000000..942ab3c
+--- /dev/null
++++ b/src/inetd.8
+@@ -0,0 +1,439 @@
++.\" Copyright (c) 1985, 1991, 1993, 1994
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)inetd.8 8.4 (Berkeley) 6/1/94
++.\"
++.Dd October 21, 2006
++.Dt INETD 8
++.Os BSD 4.4
++.Sh NAME
++.Nm inetd
++.Nd internet
++.Dq super-server
++.Sh SYNOPSIS
++.Nm inetd
++.Op Fl d
++.Op Fl R Ar rate
++.Op Fl -environment
++.Op Fl -resolve
++.Op Ar configuration_files ...
++.Sh WARNING
++The information in this man page may be inaccurate or incomplete. The
++authoritative documentation for the
++.Nm inetd
++utility is contained in
++.Pa inetutils.info
++document. To access it from your command line, type
++.Pp
++\fBinfo inetd\fR
++.Pp
++The online copy of the documentation is available at the following
++address:
++.Pp
++http://www.gnu.org/software/inetutils/manual.
++.Sh DESCRIPTION
++The
++.Nm inetd
++program
++should be run at boot time by
++.Pa /etc/rc
++(see
++.Xr rc 8 ) .
++It then listens for connections on certain
++internet sockets. When a connection is found on one
++of its sockets, it decides what service the socket
++corresponds to, and invokes a program to service the request.
++The server program is invoked with the service socket
++as its standard input, output and error descriptors.
++After the program is
++finished,
++.Nm inetd
++continues to listen on the socket (except in some cases which
++will be described below). Essentially,
++.Nm inetd
++allows running one daemon to invoke several others,
++reducing load on the system.
++.Pp
++The options available for
++.Nm inetd:
++.Bl -tag -width Ds
++.It Fl d, -debug
++Turns on debugging.
++.It Fl -environment
++Pass local and remote address data via environment variables. See
++\fBENVIRONMENT\fP below.
++.It Fl R, -rate Ar rate
++Specifies the maximum number of times a service can be invoked
++in one minute; the default is 1000.
++.It Fl -resolve
++Resolve local and remote IP addresses and pass them to the server program
++via \fBTCPLOCALHOST\fP and \fBTCPREMOTEHOST\fP environment variables. See
++\fBENVIRONMENT\fP below. This option implies \fB--environment\fP.
++.It Fl -version
++Shows the version.
++.It Fl -help
++Shows the help.
++.El
++.Pp
++Upon execution,
++.Nm inetd
++reads its configuration information from a configuration
++file on the command line, by default,
++.Pa /etc/inetd.conf and /etc/inetd.d .
++If the configuration pathname is a directory, all the files in the
++directory are read like a configuration file. All of the configuration
++files are read and merged. There must be an entry for each field in
++the configuration file, with entries for each field separated by a tab
++or a space. Comments are denoted by a ``#'' at the beginning of a
++line. The fields of the configuration file are as follows:
++.Pp
++.Bd -unfilled -offset indent -compact
++service name
++socket type
++protocol
++wait/nowait[.max]
++user
++server program
++server program arguments
++.Ed
++.Pp
++There are two types of services that
++.Nm inetd
++can start: standard and TCPMUX.
++A standard service has a well-known port assigned to it;
++it may be a service that implements an official Internet standard or is a
++BSD-specific service.
++As described in
++.Tn RFC 1078 ,
++TCPMUX services are nonstandard services that do not have a
++well-known port assigned to them.
++They are invoked from
++.Nm inetd
++when a program connects to the
++.Dq tcpmux
++well-known port and specifies
++the service name.
++This feature is useful for adding locally-developed servers.
++.Pp
++The
++.Em service-name
++entry is the name of a valid service in
++the file
++.Pa /etc/services .
++For
++.Dq internal
++services (discussed below), the service
++name
++.Em must
++be the official name of the service (that is, the first entry in
++.Pa /etc/services ) .
++For TCPMUX services, the value of the
++.Em service-name
++field consists of the string
++.Dq tcpmux
++followed by a slash and the
++locally-chosen service name.
++The service names listed in
++.Pa /etc/services
++and the name
++.Dq help
++are reserved.
++Try to choose unique names for your TCPMUX services by prefixing them with
++your organization's name and suffixing them with a version number.
++.Pp
++The
++.Em socket-type
++should be one of
++.Dq stream ,
++.Dq dgram ,
++.Dq raw ,
++.Dq rdm ,
++or
++.Dq seqpacket ,
++depending on whether the socket is a stream, datagram, raw,
++reliably delivered message, or sequenced packet socket.
++TCPMUX services must use
++.Dq stream .
++.Pp
++The
++.Em protocol
++must be a valid protocol as given in
++.Pa /etc/protocols .
++Examples might be
++.Dq tcp
++or
++.Dq udp .
++TCPMUX services must use
++.Dq tcp .
++.Pp
++The
++.Em wait/nowait[.max]
++entry specifies whether the server that is invoked by inetd will take over
++the socket associated with the service access point, and thus whether
++.Nm inetd
++should wait for the server to exit before listening for new service
++requests.
++Datagram servers must use
++.Dq wait ,
++as they are always invoked with the original datagram socket bound
++to the specified service address.
++These servers must read at least one datagram from the socket
++before exiting.
++If a datagram server connects
++to its peer, freeing the socket so
++.Nm inetd
++can received further messages on the socket, it is said to be
++a
++.Dq multi-threaded
++server;
++it should read one datagram from the socket and create a new socket
++connected to the peer.
++It should fork, and the parent should then exit
++to allow
++.Nm inetd
++to check for new service requests to spawn new servers.
++Datagram servers which process all incoming datagrams
++on a socket and eventually time out are said to be
++.Dq single-threaded .
++.Xr Comsat 8 ,
++.Pq Xr biff 1
++and
++.Xr talkd 8
++are both examples of the latter type of
++datagram server.
++.Xr Tftpd 8
++is an example of a multi-threaded datagram server.
++.Pp
++Servers using stream sockets generally are multi-threaded and
++use the
++.Dq nowait
++entry.
++Connection requests for these services are accepted by
++.Nm inetd ,
++and the server is given only the newly-accepted socket connected
++to a client of the service.
++Most stream-based services operate in this manner.
++Stream-based servers that use
++.Dq wait
++are started with the listening service socket, and must accept
++at least one connection request before exiting.
++Such a server would normally accept and process incoming connection
++requests until a timeout.
++TCPMUX services must use
++.Dq nowait .
++.Pp
++The optional
++.Dq max
++suffix (separated from
++.Dq wait
++or
++.Dq nowait
++by a dot) is a decimal number that specifies the maximum number of server
++instances that may be spawned from
++.Nm inetd
++within an interval of 60 seconds. It overrides the settings of the
++\fB-R\fP command line option.
++.Pp
++The
++.Em user
++entry should contain the user name of the user as whom the server
++should run. This allows for servers to be given less permission
++than root.
++.Pp
++The
++.Em server-program
++entry should contain the pathname of the program which is to be
++executed by
++.Nm inetd
++when a request is found on its socket. If
++.Nm inetd
++provides this service internally, this entry should
++be
++.Dq internal .
++.Pp
++The
++.Em server program arguments
++should be just as arguments
++normally are, starting with argv[0], which is the name of
++the program. If the service is provided internally, the
++word
++.Dq internal
++should take the place of this entry.
++.Pp
++The
++.Nm inetd
++program
++provides several
++.Dq trivial
++services internally by use of
++routines within itself. These services are
++.Dq echo ,
++.Dq discard ,
++.Dq chargen
++(character generator),
++.Dq daytime
++(human readable time), and
++.Dq time
++(machine readable time,
++in the form of the number of seconds since midnight, January
++1, 1900). All of these services are tcp based. For
++details of these services, consult the appropriate
++.Tn RFC
++from the Network Information Center.
++.Pp
++The
++.Nm inetd
++program
++rereads its configuration file when it receives a hangup signal,
++.Dv SIGHUP .
++Services may be added, deleted or modified when the configuration file
++is reread.
++.Sh TCPMUX
++.Pp
++.Tn RFC 1078
++describes the TCPMUX protocol:
++``A TCP client connects to a foreign host on TCP port 1. It sends the
++service name followed by a carriage-return line-feed <CRLF>. The
++service name is never case sensitive. The server replies with a
++single character indicating positive (+) or negative (\-)
++acknowledgment, immediately followed by an optional message of
++explanation, terminated with a <CRLF>. If the reply was positive,
++the selected protocol begins; otherwise the connection is closed.''
++The program is passed the TCP connection as file descriptors 0 and 1.
++.Pp
++If the TCPMUX service name begins with a ``+'',
++.Nm inetd
++returns the positive reply for the program.
++This allows you to invoke programs that use stdin/stdout
++without putting any special server code in them.
++.Pp
++The special service name
++.Dq help
++causes
++.Nm inetd
++to list TCPMUX services in
++.Pa inetd.conf .
++.ne 1i
++.Sh "ENVIRONMENT"
++If a connection is made with a streaming protocol (TCP) and if
++\fB--environment\fP option has been given, inetd will set
++the following environment variables before starting the program:
++.Pp
++\fBPROTO\fP: always "TCP".
++.Pp
++\fBTCPLOCALIP\fP: the local IP address of the interface which accepted the connection.
++.Pp
++\fBTCPLOCALPORT\fP: the port number on which the TCP connection was established.
++.Pp
++\fBTCPREMOTEIP\fP: the IP address of the remote client.
++.Pp
++\fBTCPREMOTEPORT\fP: the port number on the client side of the TCP connection.
++
++.Pp
++In addition, if given the \fB--remote\fP option,
++.Nm inetd
++will set the following environment variables:
++.Pp
++\fBTCPLOCALHOST\fP: the DNS name of \fITCPLOCALIP\fR.
++.Pp
++\fBTCPREMOTEHOST\fP: the DNS name of \fITCPREMOTEIP\fR.
++
++.Sh "EXAMPLES"
++.Pp
++Here are several example service entries for the various types of services:
++.Bd -literal
++ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
++ntalk dgram udp wait root /usr/libexec/ntalkd ntalkd
++tcpmux/+date stream tcp nowait guest /bin/date date
++tcpmux/phonebook stream tcp nowait guest /usr/local/bin/phonebook phonebook
++.Ed
++.Sh "ERROR MESSAGES"
++The
++.Nm inetd
++server
++logs error messages using
++.Xr syslog 3 .
++Important error messages and their explanations are:
++.Bd -literal
++\fIservice\fP/\fIprotocol\fP server failing (looping), service terminated.
++.Ed
++The number of requests for the specified service in the past minute
++exceeded the limit. The limit exists to prevent a broken program
++or a malicious user from swamping the system.
++This message may occur for several reasons:
++1) there are lots of hosts requesting the service within a short time period,
++2) a 'broken' client program is requesting the service too frequently,
++3) a malicious user is running a program to invoke the service in
++a 'denial of service' attack, or
++4) the invoked service program has an error that causes clients
++to retry quickly.
++Use the
++.Op Fl R
++option,
++as described above, to change the rate limit.
++Once the limit is reached, the service will be
++reenabled automatically in 10 minutes.
++.sp
++.Bd -literal
++\fIservice\fP/\fIprotocol\fP: No such user '\fIuser\fP', service ignored
++\fIservice\fP/\fIprotocol\fP: getpwnam: \fIuser\fP: No such user
++.Ed
++No entry for
++.Em user
++exists in the
++.Pa passwd
++file. The first message
++occurs when
++.Nm inetd
++(re)reads the configuration file. The second message occurs when the
++service is invoked.
++.sp
++.Bd -literal
++\fIservice\fP: can't set uid \fInumber\fP
++\fIservice\fP: can't set gid \fInumber\fP
++.Ed
++The user or group ID for the entry's
++.Em user
++is invalid.
++.Sh SEE ALSO
++.Xr comsat 8 ,
++.Xr fingerd 8 ,
++.Xr ftpd 8 ,
++.Xr rexecd 8 ,
++.Xr rlogind 8 ,
++.Xr rshd 8 ,
++.Xr telnetd 8 ,
++.Xr tftpd 8
++.Sh BUGS
++The environment variables (see \fBENVIRONMENT\fP) are set only for
++TCP IPv4 nowait connections.
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.3 .
++TCPMUX is based on code and documentation by Mark Lottor.
+diff --git a/src/logger.1 b/src/logger.1
+new file mode 100644
+index 0000000..539fc57
+--- /dev/null
++++ b/src/logger.1
+@@ -0,0 +1,96 @@
++.\" Copyright (c) 1983, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)logger.1 8.1 (Berkeley) 6/6/93
++.\"
++.Dd June 6, 1993
++.Dt LOGGER 1
++.Os BSD 4.3
++.Sh NAME
++.Nm logger
++.Nd make entries in the system log
++.Sh SYNOPSIS
++.Nm logger
++.Op Fl is
++.Op Fl f Ar file
++.Op Fl p Ar pri
++.Op Fl t Ar tag
++.Op Ar message ...
++.Sh DESCRIPTION
++.Nm Logger
++provides a shell command interface to the
++.Xr syslog 3
++system log module.
++.Pp
++Options:
++.Pp
++.Bl -tag -width "message"
++.It Fl i
++Log the process id of the logger process
++with each line.
++.It Fl s
++Log the message to standard error, as well as the system log.
++.It Fl f Ar file
++Log the specified file.
++.It Fl p Ar pri
++Enter the message with the specified priority.
++The priority may be specified numerically or as a ``facility.level''
++pair.
++For example, ``\-p local3.info'' logs the message(s) as
++.Ar info Ns rmational
++level in the
++.Ar local3
++facility.
++The default is ``user.notice.''
++.It Fl t Ar tag
++Mark every line in the log with the specified
++.Ar tag .
++.It Ar message
++Write the message to log; if not specified, and the
++.Fl f
++flag is not
++provided, standard input is logged.
++.El
++.Pp
++The
++.Nm logger
++utility exits 0 on success, and >0 if an error occurs.
++.Sh EXAMPLES
++.Bd -literal -offset indent -compact
++logger System rebooted
++
++logger \-p local0.notice \-t HOSTIDM \-f /dev/idmc
++.Ed
++.Sh SEE ALSO
++.Xr syslog 3 ,
++.Xr syslogd 8
++.Sh STANDARDS
++The
++.Nm logger
++command is expected to be
++.St -p1003.2
++compatible.
+diff --git a/src/rcp.1 b/src/rcp.1
+new file mode 100644
+index 0000000..6283dbc
+--- /dev/null
++++ b/src/rcp.1
+@@ -0,0 +1,155 @@
++.\" Copyright (c) 1983, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)rcp.1 8.1 (Berkeley) 5/31/93
++.\"
++.Dd May 31, 1993
++.Dt RCP 1
++.Os BSD 4.3r
++.Sh NAME
++.Nm rcp
++.Nd remote file copy
++.Sh SYNOPSIS
++.Nm rcp
++.Op Fl Kpx
++.Op Fl k Ar realm
++.Ar file1 file2
++.Nm rcp
++.Op Fl Kprx
++.Op Fl k Ar realm
++.Ar file ...
++.Ar directory
++.Sh DESCRIPTION
++.Nm Rcp
++copies files between machines. Each
++.Ar file
++or
++.Ar directory
++argument is either a remote file name of the
++form ``rname@rhost:path'', or a local file name (containing no `:' characters,
++or a `/' before any `:'s).
++.Pp
++.Bl -tag -width flag
++.It Fl K
++The
++.Fl K
++option turns off all Kerberos authentication.
++.It Fl k
++The
++.Fl k
++option requests
++.Nm rcp
++to obtain tickets
++for the remote host in realm
++.Ar realm
++instead of the remote host's realm as determined by
++.Xr krb_realmofhost 3 .
++.It Fl p
++The
++.Fl p
++option causes
++.Nm rcp
++to attempt to preserve (duplicate) in its copies the modification
++times and modes of the source files, ignoring the
++.Ar umask .
++By default, the mode and owner of
++.Ar file2
++are preserved if it already existed; otherwise the mode of the source file
++modified by the
++.Xr umask 2
++on the destination host is used.
++.It Fl r
++If any of the source files are directories,
++.Nm rcp
++copies each subtree rooted at that name; in this case
++the destination must be a directory.
++.It Fl x
++The
++.Fl x
++option turns on
++.Tn DES
++encryption for all data passed by
++.Nm rcp .
++This may impact response time and
++.Tn CPU
++utilization, but provides
++increased security.
++.El
++.Pp
++If
++.Ar path
++is not a full path name, it is interpreted relative to
++the login directory of the specified user
++.Ar ruser
++on
++.Ar rhost ,
++or your current user name if no other remote user name is specified.
++A
++.Ar path
++on a remote host may be quoted (using \e, ", or \(aa)
++so that the metacharacters are interpreted remotely.
++.Pp
++.Nm Rcp
++does not prompt for passwords; it performs remote execution
++via
++.Xr rsh 1 ,
++and requires the same authorization.
++.Pp
++.Nm Rcp
++handles third party copies, where neither source nor target files
++are on the current machine.
++.Sh SEE ALSO
++.Xr cp 1 ,
++.Xr ftp 1 ,
++.Xr rsh 1 ,
++.Xr rlogin 1
++.Sh HISTORY
++The
++.Nm rcp
++command appeared in
++.Bx 4.2 .
++The version of
++.Nm rcp
++described here
++has been reimplemented with Kerberos in
++.Bx 4.3 Reno .
++.Sh BUGS
++Doesn't detect all cases where the target of a copy might
++be a file in cases where only a directory should be legal.
++.Pp
++Is confused by any output generated by commands in a
++.Pa \&.login ,
++.Pa \&.profile ,
++or
++.Pa \&.cshrc
++file on the remote host.
++.Pp
++The destination user and hostname may have to be specified as
++``rhost.rname'' when the destination machine is running the
++.Bx 4.2
++version of
++.Nm rcp .
+diff --git a/src/rexecd.8 b/src/rexecd.8
+new file mode 100644
+index 0000000..0790d3d
+--- /dev/null
++++ b/src/rexecd.8
+@@ -0,0 +1,145 @@
++.\" Copyright (c) 1983, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)rexecd.8 8.3 (Berkeley) 6/1/94
++.\"
++.Dd June 1, 1994
++.Dt REXECD 8
++.Os BSD 4.2
++.Sh NAME
++.Nm rexecd
++.Nd remote execution server
++.Sh SYNOPSIS
++.Nm rexecd
++.Sh DESCRIPTION
++.Nm Rexecd
++is the server for the
++.Xr rexec 3
++routine. The server provides remote execution facilities
++with authentication based on user names and
++passwords.
++.Pp
++.Nm Rexecd
++listens for service requests at the port indicated in
++the ``exec'' service specification; see
++.Xr services 5 .
++When a service request is received the following protocol
++is initiated:
++.Bl -enum
++.It
++The server reads characters from the socket up
++to a NUL
++.Pq Ql \e0
++byte. The resultant string is
++interpreted as an
++.Tn ASCII
++number, base 10.
++.It
++If the number received in step 1 is non-zero,
++it is interpreted as the port number of a secondary
++stream to be used for the
++.Em stderr .
++A second connection is then created to the specified
++port on the client's machine.
++.It
++A NUL terminated user name of at most 16 characters
++is retrieved on the initial socket.
++.It
++A NUL terminated, unencrypted password of at most
++16 characters is retrieved on the initial socket.
++.It
++A NUL terminated command to be passed to a
++shell is retrieved on the initial socket. The length of
++the command is limited by the upper bound on the size of
++the system's argument list.
++.It
++.Nm Rexecd
++then validates the user as is done at login time
++and, if the authentication was successful, changes
++to the user's home directory, and establishes the user
++and group protections of the user.
++If any of these steps fail the connection is
++aborted with a diagnostic message returned.
++.It
++A NUL byte is returned on the initial socket
++and the command line is passed to the normal login
++shell of the user. The
++shell inherits the network connections established
++by
++.Nm rexecd .
++.El
++.Sh DIAGNOSTICS
++Except for the last one listed below,
++all diagnostic messages are returned on the initial socket,
++after which any network connections are closed.
++An error is indicated by a leading byte with a value of
++1 (0 is returned in step 7 above upon successful completion
++of all the steps prior to the command execution).
++.Pp
++.Bl -tag -width Ds
++.It Sy username too long
++The name is
++longer than 16 characters.
++.It Sy password too long
++The password is longer than 16 characters.
++.It Sy command too long
++The command line passed exceeds the size of the argument
++list (as configured into the system).
++.It Sy Login incorrect.
++No password file entry for the user name existed.
++.It Sy Password incorrect.
++The wrong password was supplied.
++.ne 1i
++.It Sy \&No remote directory.
++The
++.Xr chdir
++command to the home directory failed.
++.It Sy Try again.
++A
++.Xr fork
++by the server failed.
++.It Sy <shellname>: ...
++The user's login shell could not be started.
++This message is returned
++on the connection associated with the
++.Em stderr ,
++and is not preceded by a flag byte.
++.El
++.Sh SEE ALSO
++.Xr rexec 3
++.Sh BUGS
++Indicating ``Login incorrect'' as opposed to ``Password incorrect''
++is a security breach which allows people to probe a system for users
++with null passwords.
++.Pp
++A facility to allow all data and password exchanges to be encrypted should be
++present.
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.2 .
+diff --git a/src/rlogin.1 b/src/rlogin.1
+new file mode 100644
+index 0000000..98e6751
+--- /dev/null
++++ b/src/rlogin.1
+@@ -0,0 +1,184 @@
++.\" Copyright (c) 1983, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)rlogin.1 8.2 (Berkeley) 4/29/95
++.\"
++.Dd April 29, 1995
++.Dt RLOGIN 1
++.Os BSD 4.2
++.Sh NAME
++.Nm rlogin
++.Nd remote login
++.Sh SYNOPSIS
++.Nm rlogin
++.Op Fl 8EKLdx
++.Op Fl e Ar char
++.Op Fl k Ar realm
++.Op Fl l Ar username
++.Ar host
++.Nm rlogin
++.Op Fl 8EKLdx
++.Op Fl e Ar char
++.Op Fl k Ar realm
++.Ar username@host
++.Sh DESCRIPTION
++.Nm Rlogin
++starts a terminal session on a remote host
++.Ar host .
++.Pp
++.Nm Rlogin
++first attempts to use the Kerberos authorization mechanism, described below.
++If the remote host does not supporting Kerberos the standard Berkeley
++.Pa rhosts
++authorization mechanism is used.
++The options are as follows:
++.Bl -tag -width flag
++.It Fl 8
++The
++.Fl 8
++option allows an eight-bit input data path at all times; otherwise
++parity bits are stripped except when the remote side's stop and start
++characters are other than
++^S/^Q .
++.It Fl E
++The
++.Fl E
++option stops any character from being recognized as an escape character.
++When used with the
++.Fl 8
++option, this provides a completely transparent connection.
++.It Fl K
++The
++.Fl K
++option turns off all Kerberos authentication.
++.It Fl L
++The
++.Fl L
++option allows the rlogin session to be run in ``litout'' (see
++.Xr tty 4 )
++mode.
++.It Fl d
++The
++.Fl d
++option turns on socket debugging (see
++.Xr setsockopt 2 )
++on the TCP sockets used for communication with the remote host.
++.It Fl e
++The
++.Fl e
++option allows user specification of the escape character, which is
++``~'' by default.
++This specification may be as a literal character, or as an octal
++value in the form \ennn.
++.It Fl k
++The
++.FL k
++option requests rlogin to obtain tickets for the remote host
++in realm
++.Ar realm
++instead of the remote host's realm as determined by
++.Xr krb_realmofhost 3 .
++.It Fl x
++The
++.Fl x
++option turns on
++.Tn DES
++encryption for all data passed via the
++rlogin session.
++This may impact response time and
++.Tn CPU
++utilization, but provides
++increased security.
++.El
++.Pp
++A line of the form ``<escape char>.'' disconnects from the remote host.
++Similarly, the line ``<escape char>^Z'' will suspend the
++.Nm rlogin
++session, and ``<escape char><delayed-suspend char>'' suspends the
++send portion of the rlogin, but allows output from the remote system.
++By default, the tilde (``~'') character is the escape character, and
++normally control-Y (``^Y'') is the delayed-suspend character.
++.Pp
++All echoing takes place at the remote site, so that (except for delays)
++the
++.Nm rlogin
++is transparent.
++Flow control via ^S/^Q and flushing of input and output on interrupts
++are handled properly.
++.Sh KERBEROS AUTHENTICATION
++Each user may have a private authorization list in the file
++.Pa .klogin
++in their home directory.
++Each line in this file should contain a Kerberos principal name of the
++form
++.Ar principal.instance@realm .
++If the originating user is authenticated to one of the principals named
++in
++.Pa .klogin ,
++access is granted to the account.
++The principal
++.Ar accountname.@localrealm
++is granted access if
++there is no
++.Pa .klogin
++file.
++Otherwise a login and password will be prompted for on the remote machine
++as in
++.Xr login 1 .
++To avoid certain security problems, the
++.Pa .klogin
++file must be owned by
++the remote user.
++.Pp
++If Kerberos authentication fails, a warning message is printed and the
++standard Berkeley
++.Nm rlogin
++is used instead.
++.Sh ENVIRONMENT
++The following environment variable is utilized by
++.Nm rlogin :
++.Bl -tag -width TERM
++.It Ev TERM
++Determines the user's terminal type.
++.El
++.Sh SEE ALSO
++.Xr rsh 1 ,
++.Xr kerberos 3 ,
++.Xr krb_sendauth 3 ,
++.Xr krb_realmofhost 3
++.Sh HISTORY
++The
++.Nm rlogin
++command appeared in
++.Bx 4.2 .
++.Sh BUGS
++.Nm Rlogin
++will be replaced by
++.Xr telnet 1
++in the near future.
++.Pp
++More of the environment should be propagated.
+diff --git a/src/rlogind.8 b/src/rlogind.8
+new file mode 100644
+index 0000000..096c75f
+--- /dev/null
++++ b/src/rlogind.8
+@@ -0,0 +1,164 @@
++.\" Copyright (c) 1983, 1989, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)rlogind.8 8.1 (Berkeley) 6/4/93
++.\"
++.Dd June 4, 1993
++.Dt RLOGIND 8
++.Os BSD 4.2
++.Sh NAME
++.Nm rlogind
++.Nd remote login server
++.Sh SYNOPSIS
++.Nm rlogind
++.Op Fl aln
++.Sh DESCRIPTION
++.Nm Rlogind
++is the server for the
++.Xr rlogin 1
++program. The server provides a remote login facility
++with authentication based on privileged port numbers from trusted hosts.
++.Pp
++Options supported by
++.Nm rlogind :
++.Bl -tag -width Ds
++.It Fl a
++Ask hostname for verification.
++.It Fl l
++Prevent any authentication based on the user's
++.Dq Pa .rhosts
++file, unless the user is logging in as the superuser.
++.It Fl n
++Disable keep-alive messages.
++.El
++.Pp
++.Nm Rlogind
++listens for service requests at the port indicated in
++the ``login'' service specification; see
++.Xr services 5 .
++When a service request is received the following protocol
++is initiated:
++.Bl -enum
++.It
++The server checks the client's source port.
++If the port is not in the range 512-1023, the server
++aborts the connection.
++.It
++The server checks the client's source address
++and requests the corresponding host name (see
++.Xr gethostbyaddr 3 ,
++.Xr hosts 5
++and
++.Xr named 8 ) .
++If the hostname cannot be determined,
++the dot-notation representation of the host address is used.
++If the hostname is in the same domain as the server (according to
++the last two components of the domain name),
++or if the
++.Fl a
++option is given,
++the addresses for the hostname are requested,
++verifying that the name and address correspond.
++Normal authentication is bypassed if the address verification fails.
++.El
++.Pp
++Once the source port and address have been checked,
++.Nm rlogind
++proceeds with the authentication process described in
++.Xr rshd 8 .
++It then allocates a pseudo terminal (see
++.Xr pty 4 ) ,
++and manipulates file descriptors so that the slave
++half of the pseudo terminal becomes the
++.Em stdin ,
++.Em stdout ,
++and
++.Em stderr
++for a login process.
++The login process is an instance of the
++.Xr login 1
++program, invoked with the
++.Fl f
++option if authentication has succeeded.
++If automatic authentication fails, the user is
++prompted to log in as if on a standard terminal line.
++.Pp
++The parent of the login process manipulates the master side of
++the pseudo terminal, operating as an intermediary
++between the login process and the client instance of the
++.Xr rlogin
++program. In normal operation, the packet protocol described
++in
++.Xr pty 4
++is invoked to provide
++.Ql ^S/^Q
++type facilities and propagate
++interrupt signals to the remote programs. The login process
++propagates the client terminal's baud rate and terminal type,
++as found in the environment variable,
++.Ql Ev TERM ;
++see
++.Xr environ 7 .
++The screen or window size of the terminal is requested from the client,
++and window size changes from the client are propagated to the pseudo terminal.
++.Pp
++Transport-level keepalive messages are enabled unless the
++.Fl n
++option is present.
++The use of keepalive messages allows sessions to be timed out
++if the client crashes or becomes unreachable.
++.Sh DIAGNOSTICS
++All initial diagnostic messages are indicated
++by a leading byte with a value of 1,
++after which any network connections are closed.
++If there are no errors before
++.Xr login
++is invoked, a null byte is returned as in indication of success.
++.Bl -tag -width Ds
++.It Sy Try again.
++A
++.Xr fork
++by the server failed.
++.El
++.Sh SEE ALSO
++.Xr login 1 ,
++.Xr ruserok 3 ,
++.Xr rshd 8
++.Sh BUGS
++The authentication procedure used here assumes the integrity
++of each client machine and the connecting medium. This is
++insecure, but is useful in an ``open'' environment.
++.Pp
++A facility to allow all data exchanges to be encrypted should be
++present.
++.Pp
++A more extensible protocol should be used.
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.2 .
+diff --git a/src/rsh.1 b/src/rsh.1
+new file mode 100644
+index 0000000..dd9c6bc
+--- /dev/null
++++ b/src/rsh.1
+@@ -0,0 +1,183 @@
++.\" Copyright (c) 1983, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)rsh.1 8.2 (Berkeley) 4/29/95
++.\"
++.Dd April 29, 1995
++.Dt RSH 1
++.Os BSD 4.2
++.Sh NAME
++.Nm rsh
++.Nd remote shell
++.Sh SYNOPSIS
++.Nm rsh
++.Op Fl Kdnx
++.Op Fl k Ar realm
++.Op Fl l Ar username
++.Ar host
++.Nm rsh
++.Op Fl Kdnx
++.Op Fl k Ar realm
++.Ar username@host
++.Op command
++.Sh DESCRIPTION
++.Nm Rsh
++executes
++.Ar command
++on
++.Ar host .
++.Pp
++.Nm Rsh
++copies its standard input to the remote command, the standard
++output of the remote command to its standard output, and the
++standard error of the remote command to its standard error.
++Interrupt, quit and terminate signals are propagated to the remote
++command;
++.Nm rsh
++normally terminates when the remote command does.
++The options are as follows:
++.Bl -tag -width flag
++.It Fl K
++The
++.Fl K
++option turns off all Kerberos authentication.
++.It Fl d
++The
++.Fl d
++option turns on socket debugging (using
++.Xr setsockopt 2 )
++on the
++.Tn TCP
++sockets used for communication with the remote host.
++.It Fl k
++The
++.Fl k
++option causes
++.Nm rsh
++to obtain tickets for the remote host in
++.Ar realm
++instead of the remote host's realm as determined by
++.Xr krb_realmofhost 3 .
++.It Fl l
++By default, the remote username is the same as the local username.
++The
++.Fl l
++option or the
++.Pa username@host
++format allow the remote name to be specified.
++Kerberos authentication is used, and authorization is determined
++as in
++.Xr rlogin 1 .
++.It Fl n
++The
++.Fl n
++option redirects input from the special device
++.Pa /dev/null
++(see the
++.Sx BUGS
++section of this manual page).
++.It Fl x
++The
++.Fl x
++option turns on
++.Tn DES
++encryption for all data exchange.
++This may introduce a significant delay in response time.
++.El
++.Pp
++If no
++.Ar command
++is specified, you will be logged in on the remote host using
++.Xr rlogin 1 .
++.Pp
++Shell metacharacters which are not quoted are interpreted on local machine,
++while quoted metacharacters are interpreted on the remote machine.
++For example, the command
++.Pp
++.Dl rsh otherhost cat remotefile >> localfile
++.Pp
++appends the remote file
++.Ar remotefile
++to the local file
++.Ar localfile ,
++while
++.Pp
++.Dl rsh otherhost cat remotefile \&">>\&" other_remotefile
++.Pp
++appends
++.Ar remotefile
++to
++.Ar other_remotefile .
++.\" .Pp
++.\" Many sites specify a large number of host names as commands in the
++.\" directory /usr/hosts.
++.\" If this directory is included in your search path, you can use the
++.\" shorthand ``host command'' for the longer form ``rsh host command''.
++.Sh FILES
++.Bl -tag -width /etc/hosts -compact
++.It Pa /etc/hosts
++.El
++.Sh SEE ALSO
++.Xr rlogin 1 ,
++.Xr kerberos 3 ,
++.Xr krb_sendauth 3 ,
++.Xr krb_realmofhost 3
++.Sh HISTORY
++The
++.Nm rsh
++command appeared in
++.Bx 4.2 .
++.Sh BUGS
++If you are using
++.Xr csh 1
++and put a
++.Nm rsh
++in the background without redirecting its input away from the terminal,
++it will block even if no reads are posted by the remote command.
++If no input is desired you should redirect the input of
++.Nm rsh
++to
++.Pa /dev/null
++using the
++.Fl n
++option.
++.Pp
++You cannot run an interactive command
++(like
++.Xr rogue 6
++or
++.Xr vi 1 )
++using
++.Nm rsh ;
++use
++.Xr rlogin 1
++instead.
++.Pp
++Stop signals stop the local
++.Nm rsh
++process only; this is arguably wrong, but currently hard to fix for reasons
++too complicated to explain here.
+diff --git a/src/rshd.8 b/src/rshd.8
+new file mode 100644
+index 0000000..a252e40
+--- /dev/null
++++ b/src/rshd.8
+@@ -0,0 +1,205 @@
++.\" Copyright (c) 1983, 1989, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)rshd.8 8.1 (Berkeley) 6/4/93
++.\"
++.Dd June 4, 1993
++.Dt RSHD 8
++.Os BSD 4.2
++.Sh NAME
++.Nm rshd
++.Nd remote shell server
++.Sh SYNOPSIS
++.Nm rshd
++.Op Fl alnL
++.Sh DESCRIPTION
++The
++.Nm rshd
++server
++is the server for the
++.Xr rcmd 3
++routine and, consequently, for the
++.Xr rsh 1
++program. The server provides remote execution facilities
++with authentication based on privileged port numbers from trusted hosts.
++.Pp
++The
++.Nm rshd
++server
++listens for service requests at the port indicated in
++the ``cmd'' service specification; see
++.Xr services 5 .
++When a service request is received the following protocol
++is initiated:
++.Bl -enum
++.It
++The server checks the client's source port.
++If the port is not in the range 512-1023, the server
++aborts the connection.
++.It
++The server reads characters from the socket up
++to a null (`\e0') byte. The resultant string is
++interpreted as an
++.Tn ASCII
++number, base 10.
++.It
++If the number received in step 2 is non-zero,
++it is interpreted as the port number of a secondary
++stream to be used for the
++.Em stderr .
++A second connection is then created to the specified
++port on the client's machine. The source port of this
++second connection is also in the range 512-1023.
++.It
++The server checks the client's source address
++and requests the corresponding host name (see
++.Xr gethostbyaddr 3 ,
++.Xr hosts 5
++and
++.Xr named 8 ) .
++If the hostname cannot be determined,
++the dot-notation representation of the host address is used.
++If the hostname is in the same domain as the server (according to
++the last two components of the domain name),
++or if the
++.Fl a
++option is given,
++the addresses for the hostname are requested,
++verifying that the name and address correspond.
++If address verification fails, the connection is aborted
++with the message, ``Host address mismatch.''
++.It
++A null terminated user name of at most 16 characters
++is retrieved on the initial socket. This user name
++is interpreted as the user identity on the
++.Em client Ns 's
++machine.
++.It
++A null terminated user name of at most 16 characters
++is retrieved on the initial socket. This user name
++is interpreted as a user identity to use on the
++.Sy server Ns 's
++machine.
++.It
++A null terminated command to be passed to a
++shell is retrieved on the initial socket. The length of
++the command is limited by the upper bound on the size of
++the system's argument list.
++.It
++.Nm Rshd
++then validates the user using
++.Xr ruserok 3 ,
++which uses the file
++.Pa /etc/hosts.equiv
++and the
++.Pa .rhosts
++file found in the user's home directory. The
++.Fl l
++option prevents
++.Xr ruserok 3
++from doing any validation based on the user's ``.rhosts'' file,
++unless the user is the superuser.
++.It
++If the file
++.Pa /etc/nologin
++exists and the user is not the superuser,
++the connection is closed.
++.It
++A null byte is returned on the initial socket
++and the command line is passed to the normal login
++shell of the user. The
++shell inherits the network connections established
++by
++.Nm rshd .
++.El
++.Pp
++Transport-level keepalive messages are enabled unless the
++.Fl n
++option is present.
++The use of keepalive messages allows sessions to be timed out
++if the client crashes or becomes unreachable.
++.Pp
++The
++.Fl L
++option causes all successful accesses to be logged to
++.Xr syslogd 8
++as
++.Li auth.info
++messages.
++.Sh DIAGNOSTICS
++Except for the last one listed below,
++all diagnostic messages
++are returned on the initial socket,
++after which any network connections are closed.
++An error is indicated by a leading byte with a value of
++1 (0 is returned in step 10 above upon successful completion
++of all the steps prior to the execution of the login shell).
++.Bl -tag -width indent
++.It Sy Locuser too long.
++The name of the user on the client's machine is
++longer than 16 characters.
++.It Sy Ruser too long.
++The name of the user on the remote machine is
++longer than 16 characters.
++.It Sy Command too long .
++The command line passed exceeds the size of the argument
++list (as configured into the system).
++.It Sy Login incorrect.
++No password file entry for the user name existed.
++.It Sy Remote directory.
++The
++.Xr chdir
++command to the home directory failed.
++.It Sy Permission denied.
++The authentication procedure described above failed.
++.It Sy Can't make pipe.
++The pipe needed for the
++.Em stderr ,
++wasn't created.
++.It Sy Can't fork; try again.
++A
++.Xr fork
++by the server failed.
++.It Sy <shellname>: ...
++The user's login shell could not be started. This message is returned
++on the connection associated with the
++.Em stderr ,
++and is not preceded by a flag byte.
++.El
++.Sh SEE ALSO
++.Xr rsh 1 ,
++.Xr rcmd 3 ,
++.Xr ruserok 3
++.Sh BUGS
++The authentication procedure used here assumes the integrity
++of each client machine and the connecting medium. This is
++insecure, but is useful in an ``open'' environment.
++.Pp
++A facility to allow all data exchanges to be encrypted should be
++present.
++.Pp
++A more extensible protocol (such as Telnet) should be used.
+diff --git a/src/syslog.conf.5 b/src/syslog.conf.5
+new file mode 100644
+index 0000000..81d67e1
+--- /dev/null
++++ b/src/syslog.conf.5
+@@ -0,0 +1,251 @@
++.\" Copyright (c) 1990, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93
++.\"
++.Dd June 9, 1993
++.Dt SYSLOG.CONF 5
++.Os
++.Sh NAME
++.Nm syslog.conf
++.Nd
++.Xr syslogd 8
++configuration file
++.Sh DESCRIPTION
++The
++.Nm syslog.conf
++file is the configuration file for the
++.Xr syslogd 8
++program.
++It consists of lines with two fields: the
++.Em selector
++field which specifies the types of messages and priorities to which the
++line applies, and an
++.Em action
++field which specifies the action to be taken if a message
++.Xr syslogd
++receives matches the selection criteria.
++The
++.Em selector
++field is separated from the
++.Em action
++field by one or more tab or space characters. A rule can be splitted in
++several lines if all lines except the last are terminated with a backslash
++(``\'').
++.Pp
++The
++.Em Selectors
++function
++are encoded as a
++.Em facility ,
++a period (``.''), and a
++.Em level ,
++with no intervening white-space.
++Both the
++.Em facility
++and the
++.Em level
++are case insensitive.
++.Pp
++The
++.Em facility
++describes the part of the system generating the message, and is one of
++the following keywords: auth, authpriv, cron, daemon, kern, lpr, mail,
++mark, news, syslog, user, uucp and local0 through local7.
++These keywords (with the exception of mark) correspond to the
++similar
++.Dq Dv LOG_
++values specified to the
++.Xr openlog 3
++and
++.Xr syslog 3
++library routines.
++.Pp
++The
++.Em level
++describes the severity of the message, and is a keyword from the
++following ordered list (higher to lower): emerg, alert, crit, err,
++warning, notice and debug.
++These keywords correspond to the
++similar
++.Pq Dv LOG_
++values specified to the
++.Xr syslog
++library routine.
++.Pp
++See
++.Xr syslog 3
++for a further descriptions of both the
++.Em facility
++and
++.Em level
++keywords and their significance.
++.Pp
++If a received message matches the specified
++.Em facility
++and is of the specified
++.Em level
++.Em (or a higher level) ,
++the action specified in the
++.Em action
++field will be taken.
++.Pp
++Multiple
++.Em selectors
++may be specified for a single
++.Em action
++by separating them with semicolon (``;'') characters.
++It is important to note, however, that each
++.Em selector
++can modify the ones preceding it.
++.Pp
++Multiple
++.Em facilities
++may be specified for a single
++.Em level
++by separating them with comma (``,'') characters.
++.Pp
++An asterisk (``*'') can be used to specify all
++.Em facilities
++or all
++.Em levels .
++.Pp
++By default, a
++.Em level
++applies to all messages with the same or higher
++.Em level .
++The equal (``='') character can be prepended to a
++.Em level
++to restrict this line of the configuration file to messages
++with the very same
++.Em level .
++.Pp
++An exclamation mark (``!'') prepended to a
++.Em level
++or the asterisk means that this line of the configuration file does
++.Em not
++apply to the specified level (and higher ones). In conjunction with
++the equal sign, you can exclude single
++.Em levels
++as well.
++.Pp
++The special
++.Em facility
++``mark'' receives a message at priority ``info'' every 20 minutes
++(see
++.Xr syslogd 8 ) .
++This is not enabled by a
++.Em facility
++field containing an asterisk.
++.Pp
++The special
++.Em level
++``none'' disables a particular
++.Em facility .
++.Pp
++The
++.Em action
++field of each line specifies the action to be taken when the
++.Em selector
++field selects a message.
++There are five forms:
++.Bl -bullet
++.It
++A pathname (beginning with a leading slash).
++Selected messages are appended to the file.
++.Pp
++You may prepend a minus (``-'') to the path to omit syncing the file
++after each message log. This can cause data loss at system crashes, but
++increases performance for programs which use logging extensively.
++.It
++A named pipe (fifo), beginning with a vertical bar (``|'') followed
++by a pathname. The pipe must be created with
++.Xr mkfifo 8
++before syslogd reads its configuration file.
++This feature is especially useful fo debugging.
++.It
++A hostname (preceded by an at (``@'') sign).
++Selected messages are forwarded to the
++.Xr syslogd
++program on the named host.
++.It
++A comma separated list of users.
++Selected messages are written to those users
++if they are logged in.
++.It
++An asterisk.
++Selected messages are written to all logged-in users.
++.El
++.Pp
++Blank lines and lines whose first non-blank character is a hash (``#'')
++character are ignored.
++.Sh EXAMPLES
++.Pp
++A configuration file might appear as follows:
++.Bd -literal
++# Log all kernel messages, authentication messages of
++# level notice or higher and anything of level err or
++# higher to the console.
++# Don't log private authentication messages!
++*.err;kern.*;auth.notice;authpriv.none /dev/console
++
++# Log anything (except mail) of level info or higher.
++# Don't log private authentication messages!
++*.info;mail.none;authpriv.none /var/log/messages
++
++# The authpriv file has restricted access.
++authpriv.* /var/log/secure
++
++# Log all the mail messages in one place.
++mail.* /var/log/maillog
++
++# Everybody gets emergency messages, plus log them on another
++# machine.
++*.emerg *
++*.emerg @arpa.berkeley.edu
++
++# Root and Eric get alert and higher messages.
++*.alert root,eric
++
++# Save mail and news errors of level err and higher in a
++# special file.
++uucp,news.crit /var/log/spoolerr
++.Ed
++.Sh FILES
++.Bl -tag -width /etc/syslog.conf -compact
++.It Pa /etc/syslog.conf
++The
++.Xr syslogd 8
++configuration file.
++.El
++.Sh BUGS
++The effects of multiple selectors are sometimes not intuitive.
++For example ``mail.crit,*.err'' will select ``mail'' facility messages at
++the level of ``err'' or higher, not at the level of ``crit'' or higher.
++.Sh SEE ALSO
++.Xr syslog 3 ,
++.Xr syslogd 8
+diff --git a/src/syslogd.8 b/src/syslogd.8
+new file mode 100644
+index 0000000..a1e064e
+--- /dev/null
++++ b/src/syslogd.8
+@@ -0,0 +1,163 @@
++.\" Copyright (c) 1983, 1986, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)syslogd.8 8.1 (Berkeley) 6/6/93
++.\"
++.Dd June 6, 1993
++.Dt SYSLOGD 8
++.Os BSD 4.2
++.Sh NAME
++.Nm syslogd
++.Nd log systems messages
++.Sh SYNOPSIS
++.Nm syslogd
++.Op Fl V
++.Op Fl a Ar socket
++.Op Fl d
++.Op Fl f Ar config_file
++.Op Fl h
++.Op Fl l Ar host_list
++.Op Fl m Ar mark_interval
++.Op Fl n
++.Op Fl p Ar log_socket
++.Op Fl r
++.Op Fl s Ar domain_list
++.Op Fl -no-klog
++.Op Fl -no-unixaf
++.Op Fl -no-forward
++.Sh DESCRIPTION
++.Nm Syslogd
++reads and logs messages to the system console, log files, other
++machines and/or users as specified by its configuration file.
++The options are as follows:
++.Bl -tag -width Ds
++.It Fl V
++Print version number and exit.
++.It Fl -help
++Display help information and exit.
++.It Fl d
++Enter debug mode. syslogd does not put itself in the background, does
++not fork and shows debug information.
++.It Fl a
++Specify additional sockets from that syslogd has to listen to.
++This is needed if you are going to let some daemon run within
++a chroot()'ed environment. You can specify up to 19 additional
++sockets.
++.It \fB-f\fR, \fB--rcfile\fR=\fIFILE\fP
++Specify the pathname of an alternate configuration file;
++the default is system specific and displayed in the help output.
++.It \fB-h\fR, \fB--hop\fR
++Enable forwarding remote messages. By default syslogd will not
++forward messages it receives from remote hosts.
++.It Fl l
++A colon-seperated lists of hosts which should be considered local;
++they are logged by their hostnames instead by their FQDN.
++.It \fB-m\fR, \fB--mark\fR=\fIINTERVAL/fP
++Select the number of minutes between ``mark'' messages;
++the default is 20 minutes. Setting it to 0 disables timestamps.
++.It \fB-n\fR, \fB--no-detach\fR
++Suppress backgrounding and detachment of the daemon from its
++controlling terminal.
++.It \fB-p\fR, \fB--socket\fR=\fIPATH\fP
++Specify the pathname of an alternate log socket.
++The default is systemspecific and displayed in the help output.
++.It \fB-r\fR, \fB--inet\fR
++Enable to receive remote messages using an internet domain socket.
++The default is to not receive any messages from the network. Older
++version always accepted remote messages.
++.It Fl s
++A colon-seperated list of domainnames which should be stripped from
++the FQDNs of hosts when logging.
++.It Fl -no-klog
++Do not listen to the kernel log device. This is only supported on
++systems which define a kernel log device, on all others this is already
++the default, and the option will be silently ignored.
++.It Fl -no-unixaf
++Do not listen to any unix domain socket. This option overrides \-p and \-a.
++.It Fl -no-forward
++Do not forward any messages. This overrides \-h.
++.El
++.Pp
++.Nm Syslogd
++reads its configuration file when it starts up and whenever it
++receives a hangup signal.
++For information on the format of the configuration file,
++see
++.Xr syslog.conf 5 .
++.Pp
++.Nm Syslogd
++reads messages from the
++.Tn UNIX
++domain socket
++.Pa /dev/log ,
++from an Internet domain socket specified in
++.Pa /etc/services ,
++and from the special device
++.Pa /dev/klog
++(to read kernel messages).
++.Pp
++.Nm Syslogd
++creates the file
++.Pa /var/run/syslog.pid ,
++and stores its process
++id there.
++This can be used to kill or reconfigure
++.Nm syslogd .
++.Pp
++The message sent to
++.Nm syslogd
++should consist of a single line.
++The message can contain a priority code, which should be a preceding
++decimal number in angle braces, for example,
++.Sq Aq 5.
++This priority code should map into the priorities defined in the
++include file
++.Aq Pa sys/syslog.h .
++.Sh FILES
++.Bl -tag -width /var/run/syslog.pid -compact
++.It Pa /etc/syslog.conf
++The configuration file.
++.It Pa /var/run/syslog.pid
++The process id of current
++.Nm syslogd .
++.It Pa /dev/log
++Name of the
++.Tn UNIX
++domain datagram log socket.
++.It Pa /dev/klog
++The kernel log device.
++.El
++.Sh SEE ALSO
++.Xr logger 1 ,
++.Xr syslog 3 ,
++.Xr services 5 ,
++.Xr syslog.conf 5
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.3 .
+diff --git a/src/tftp.1 b/src/tftp.1
+new file mode 100644
+index 0000000..e47a78e
+--- /dev/null
++++ b/src/tftp.1
+@@ -0,0 +1,169 @@
++.\" Copyright (c) 1990, 1993, 1994
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)tftp.1 8.2 (Berkeley) 4/18/94
++.\"
++.Dd April 18, 1994
++.Dt TFTP 1
++.Os BSD 4.3
++.Sh NAME
++.Nm tftp
++.Nd trivial file transfer program
++.Sh SYNOPSIS
++.Nm tftp
++.Op Ar host
++.Sh DESCRIPTION
++.Nm Tftp
++is the user interface to the Internet
++.Tn TFTP
++(Trivial File Transfer Protocol),
++which allows users to transfer files to and from a remote machine.
++The remote
++.Ar host
++may be specified on the command line, in which case
++.Nm tftp
++uses
++.Ar host
++as the default host for future transfers (see the
++.Cm connect
++command below).
++.Sh COMMANDS
++Once
++.Nm tftp
++is running, it issues the prompt
++.LI tftp>
++and recognizes the following commands:
++.Pp
++.Bl -tag -width verbose -compact
++.It Cm \&? Ar command-name ...
++Print help information.
++.Pp
++.It Cm ascii
++Shorthand for "mode ascii"
++.Pp
++.It Cm binary
++Shorthand for "mode binary"
++.Pp
++.It Cm connect Ar host-name Op Ar port
++Set the
++.Ar host
++(and optionally
++.Ar port )
++for transfers.
++Note that the
++.Tn TFTP
++protocol, unlike the
++.Tn FTP
++protocol,
++does not maintain connections between transfers; thus, the
++.Cm connect
++command does not actually create a connection,
++but merely remembers what host is to be used for transfers.
++You do not have to use the
++.Cm connect
++command; the remote host can be specified as part of the
++.Cm get
++or
++.Cm put
++commands.
++.Pp
++.It Cm get Ar filename
++.It Cm get Ar remotename localname
++.It Cm get Ar file1 file2 ... fileN
++Get a file or set of files from the specified
++.Ar sources .
++.Ar Source
++can be in one of two forms:
++a filename on the remote host, if the host has already been specified,
++or a string of the form
++.Ar hosts:filename
++to specify both a host and filename at the same time.
++If the latter form is used,
++the last hostname specified becomes the default for future transfers.
++.Pp
++.It Cm mode Ar transfer-mode
++Set the mode for transfers;
++.Ar transfer-mode
++may be one of
++.Em ascii
++or
++.Em binary .
++The default is
++.Em ascii .
++.Pp
++.It Cm put Ar file
++.It Cm put Ar localfile remotefile
++.It Cm put Ar file1 file2 ... fileN remote-directory
++Put a file or set of files to the specified
++remote file or directory.
++The destination
++can be in one of two forms:
++a filename on the remote host, if the host has already been specified,
++or a string of the form
++.Ar hosts:filename
++to specify both a host and filename at the same time.
++If the latter form is used,
++the hostname specified becomes the default for future transfers.
++If the remote-directory form is used, the remote host is
++assumed to be a
++.Tn UNIX
++machine.
++.Pp
++.It Cm quit
++Exit
++.Nm tftp .
++An end of file also exits.
++.Pp
++.It Cm rexmt Ar retransmission-timeout
++Set the per-packet retransmission timeout, in seconds.
++.Pp
++.It Cm status
++Show current status.
++.Pp
++.It Cm timeout Ar total-transmission-timeout
++Set the total transmission timeout, in seconds.
++.Pp
++.It Cm trace
++Toggle packet tracing.
++.Pp
++.It Cm verbose
++Toggle verbose mode.
++.El
++.Sh BUGS
++.Pp
++Because there is no user-login or validation within
++the
++.Tn TFTP
++protocol, the remote site will probably have some
++sort of file-access restrictions in place. The
++exact methods are specific to each site and therefore
++difficult to document here.
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.3 .
+diff --git a/src/tftpd.8 b/src/tftpd.8
+new file mode 100644
+index 0000000..ac6a59a
+--- /dev/null
++++ b/src/tftpd.8
+@@ -0,0 +1,102 @@
++.\" Copyright (c) 1983, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)tftpd.8 8.1 (Berkeley) 6/4/93
++.\"
++.Dd June 4, 1993
++.Dt TFTPD 8
++.Os BSD 4.2
++.Sh NAME
++.Nm tftpd
++.Nd
++Internet Trivial File Transfer Protocol server
++.Sh SYNOPSIS
++.Nm tftpd
++.Op Fl l
++.Op Fl n
++.Op Ar directory ...
++.Sh DESCRIPTION
++.Nm Tftpd
++is a server which supports the
++Internet Trivial File Transfer
++Protocol (\c
++.Tn RFC 783).
++The
++.Tn TFTP
++server operates
++at the port indicated in the
++.Ql tftp
++service description;
++see
++.Xr services 5 .
++The server is normally started by
++.Xr inetd 8 .
++.Pp
++The use of
++.Xr tftp 1
++does not require an account or password on the remote system.
++Due to the lack of authentication information,
++.Nm tftpd
++will allow only publicly readable files to be
++accessed.
++Files containing the string ``/\|\fB.\|.\fP\|/'' are not allowed.
++Files may be written only if they already exist and are publicly writable.
++Note that this extends the concept of
++.Dq public
++to include
++all users on all hosts that can be reached through the network;
++this may not be appropriate on all systems, and its implications
++should be considered before enabling tftp service.
++The server should have the user ID with the lowest possible privilege.
++.Pp
++Access to files may be restricted by invoking
++.Nm tftpd
++with a list of directories by including up to 20 pathnames
++as server program arguments in
++.Pa /etc/inetd.conf .
++In this case access is restricted to files whose
++names are prefixed by the one of the given directories.
++The given directories are also treated as a search path for
++relative filename requests.
++.Pp
++The options are:
++.Bl -tag -width Ds
++.It Fl l
++Logs all requests using
++.Xr syslog 3 .
++.It Fl n
++Suppresses negative acknowledgement of requests for nonexistent
++relative filenames.
++.El
++.Sh SEE ALSO
++.Xr tftp 1 ,
++.Xr inetd 8
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.2 .
+diff --git a/talk/Makefile.am b/talk/Makefile.am
+index c618238..4029c5e 100644
+--- a/talk/Makefile.am
++++ b/talk/Makefile.am
+@@ -25,6 +25,12 @@ talk_SOURCES = ctl.c ctl_transact.c display.c get_addrs.c get_names.c init_disp.
+
+ noinst_HEADERS = talk.h talk_ctl.h
+
++if ENABLE_talk
++man_MANS = talk.1
++endif
++
++EXTRA_DIST = $(man_MANS)
++
+ INCLUDES = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils $(NCURSES_INCLUDE)
+
+ LDADD = $(LIBCURSES) -L../libinetutils -linetutils ../lib/libgnu.a
+diff --git a/talk/talk.1 b/talk/talk.1
+new file mode 100644
+index 0000000..e636667
+--- /dev/null
++++ b/talk/talk.1
+@@ -0,0 +1,125 @@
++.\" Copyright (c) 1983, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)talk.1 8.1 (Berkeley) 6/6/93
++.\"
++.Dd June 6, 1993
++.Dt TALK 1
++.Os BSD 4.2
++.Sh NAME
++.Nm talk
++.Nd talk to another user
++.Sh SYNOPSIS
++.Nm talk
++.Ar person
++.Op Ar ttyname
++.Sh DESCRIPTION
++.Nm Talk
++is a visual communication program which copies lines from your
++terminal to that of another user.
++.Pp
++Options available:
++.Bl -tag -width ttyname
++.It Ar person
++If you wish to talk to someone on your own machine, then
++.Ar person
++is just the person's login name. If you wish to talk to a user on
++another host, then
++.Ar person
++is of the form
++.Ql user@host .
++.It Ar ttyname
++If you wish to talk to a user who is logged in more than once, the
++.Ar ttyname
++argument may be used to indicate the appropriate terminal
++name, where
++.Ar ttyname
++is of the form
++.Ql ttyXX .
++.El
++.Pp
++When first called,
++.Nm talk
++sends the message
++.Bd -literal -offset indent -compact
++Message from TalkDaemon@his_machine...
++talk: connection requested by your_name@your_machine.
++talk: respond with: talk your_name@your_machine
++.Ed
++.Pp
++to the user you wish to talk to. At this point, the recipient
++of the message should reply by typing
++.Pp
++.Dl talk \ your_name@your_machine
++.Pp
++It doesn't matter from which machine the recipient replies, as
++long as his login-name is the same. Once communication is established,
++the two parties may type simultaneously, with their output appearing
++in separate windows. Typing control-L
++.Ql ^L
++will cause the screen to
++be reprinted, while your erase, kill, and word kill characters will
++behave normally. To exit, just type your interrupt character;
++.Nm talk
++then moves the cursor to the bottom of the screen and restores the
++terminal to its previous state.
++.Pp
++Permission to talk may be denied or granted by use of the
++.Xr mesg 1
++command. At the outset talking is allowed. Certain commands, in
++particular
++.Xr nroff 1
++and
++.Xr pr 1 ,
++disallow messages in order to
++prevent messy output.
++.Pp
++.Sh FILES
++.Bl -tag -width /var/run/utmp -compact
++.It Pa /etc/hosts
++to find the recipient's machine
++.It Pa /var/run/utmp
++to find the recipient's tty
++.El
++.Sh SEE ALSO
++.Xr mail 1 ,
++.Xr mesg 1 ,
++.Xr who 1 ,
++.Xr write 1
++.Sh BUGS
++The version of
++.Xr talk 1
++released with
++.Bx 4.3
++uses a protocol that
++is incompatible with the protocol used in the version released with
++.Bx 4.2 .
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.2 .
+diff --git a/talkd/Makefile.am b/talkd/Makefile.am
+index eea1429..c66be17 100644
+--- a/talkd/Makefile.am
++++ b/talkd/Makefile.am
+@@ -32,6 +32,12 @@ talkd_SOURCES = \
+ talkd.c\
+ intalkd.h
+
++if ENABLE_talkd
++man_MANS = talkd.8
++endif
++
++EXTRA_DIST = $(man_MANS)
++
+ @PATHDEFS_MAKE@
+
+ AM_CPPFLAGS = $(PATHDEF_DEV)
+diff --git a/talkd/talkd.8 b/talkd/talkd.8
+new file mode 100644
+index 0000000..8169176
+--- /dev/null
++++ b/talkd/talkd.8
+@@ -0,0 +1,71 @@
++.\" Copyright (c) 1983, 1991, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)talkd.8 8.2 (Berkeley) 12/11/93
++.\"
++.Dd December 11, 1993
++.Dt TALKD 8
++.Os BSD 4.3
++.Sh NAME
++.Nm talkd
++.Nd remote user communication server
++.Sh SYNOPSIS
++.Nm talkd
++.Sh DESCRIPTION
++.Nm Talkd
++is the server that notifies a user that someone else wants to
++initiate a conversation.
++It acts as a repository of invitations, responding to requests
++by clients wishing to rendezvous to hold a conversation.
++In normal operation, a client, the caller,
++initiates a rendezvous by sending a
++.Tn CTL_MSG
++to the server of
++type
++.Tn LOOK_UP
++(see
++.Aq Pa protocols/talkd.h ) .
++This causes the server to search its invitation
++tables to check if an invitation currently exists for the caller
++(to speak to the callee specified in the message).
++If the lookup fails,
++the caller then sends an
++.Tn ANNOUNCE
++message causing the server to
++broadcast an announcement on the callee's login ports requesting contact.
++When the callee responds, the local server uses the
++recorded invitation to respond with the appropriate rendezvous
++address and the caller and callee client programs establish a
++stream connection through which the conversation takes place.
++.Sh SEE ALSO
++.Xr talk 1 ,
++.Xr write 1
++.Sh HISTORY
++The
++.Nm
++command appeared in
++.Bx 4.3 .
+diff --git a/telnet/Makefile.am b/telnet/Makefile.am
+index 1ea413c..f225804 100644
+--- a/telnet/Makefile.am
++++ b/telnet/Makefile.am
+@@ -26,6 +26,12 @@ telnet_SOURCES = authenc.c commands.c main.c network.c ring.c sys_bsd.c \
+
+ noinst_HEADERS = defines.h externs.h general.h ring.h types.h
+
++if ENABLE_telnet
++man_MANS = telnet.1
++endif
++
++EXTRA_DIST = $(man_MANS)
++
+ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/libinetutils
+ AM_CPPFLAGS=-DTERMCAP -DLINEMODE -DKLUDGELINEMODE -DENV_HACK
+
+diff --git a/telnet/telnet.1 b/telnet/telnet.1
+new file mode 100644
+index 0000000..48366e5
+--- /dev/null
++++ b/telnet/telnet.1
+@@ -0,0 +1,1362 @@
++.\" Copyright (c) 1983, 1990, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)telnet.1 8.6 (Berkeley) 6/1/94
++.\"
++.Dd June 1, 1994
++.Dt TELNET 1
++.Os BSD 4.2
++.Sh NAME
++.Nm telnet
++.Nd user interface to the
++.Tn TELNET
++protocol
++.Sh SYNOPSIS
++.Nm telnet
++.Op Fl 8EFKLacdfrx
++.Op Fl S Ar tos
++.Op Fl X Ar authtype
++.Op Fl e Ar escapechar
++.Op Fl k Ar realm
++.Op Fl l Ar user
++.Op Fl n Ar tracefile
++.Oo
++.Ar host
++.Op port
++.Oc
++.Sh DESCRIPTION
++The
++.Nm telnet
++command
++is used to communicate with another host using the
++.Tn TELNET
++protocol.
++If
++.Nm telnet
++is invoked without the
++.Ar host
++argument, it enters command mode,
++indicated by its prompt
++.Pq Nm telnet\&> .
++In this mode, it accepts and executes the commands listed below.
++If it is invoked with arguments, it performs an
++.Ic open
++command with those arguments.
++.Pp
++Options:
++.Bl -tag -width indent
++.It Fl 8
++Specifies an 8-bit data path. This causes an attempt to
++negotiate the
++.Dv TELNET BINARY
++option on both input and output.
++.It Fl E
++Stops any character from being recognized as an escape character.
++.It Fl F
++If Kerberos V5 authentication is being used, the
++.Fl F
++option allows the local credentials to be forwarded
++to the remote system, including any credentials that
++have already been forwarded into the local environment.
++.It Fl K
++Specifies no automatic login to the remote system.
++.It Fl L
++Specifies an 8-bit data path on output. This causes the
++BINARY option to be negotiated on output.
++.It Fl S Ar tos
++Sets the IP type-of-service (TOS) option for the telnet
++connection to the value
++.Ar tos,
++which can be a numeric TOS value
++or, on systems that support it, a symbolic
++TOS name found in the /etc/iptos file.
++.It Fl X Ar atype
++Disables the
++.Ar atype
++type of authentication.
++.It Fl a
++Attempt automatic login.
++Currently, this sends the user name via the
++.Ev USER
++variable
++of the
++.Ev ENVIRON
++option if supported by the remote system.
++The name used is that of the current user as returned by
++.Xr getlogin 2
++if it agrees with the current user ID,
++otherwise it is the name associated with the user ID.
++.It Fl c
++Disables the reading of the user's
++.Pa \&.telnetrc
++file. (See the
++.Ic toggle skiprc
++command on this man page.)
++.It Fl d
++Sets the initial value of the
++.Ic debug
++toggle to
++.Dv TRUE
++.It Fl e Ar escape char
++Sets the initial
++.Nm
++.Nm telnet
++escape character to
++.Ar escape char.
++If
++.Ar escape char
++is omitted, then
++there will be no escape character.
++.It Fl f
++If Kerberos V5 authentication is being used, the
++.Fl f
++option allows the local credentials to be forwarded to the remote system.
++.ne 1i
++.It Fl k Ar realm
++If Kerberos authentication is being used, the
++.Fl k
++option requests that telnet obtain tickets for the remote host in
++realm realm instead of the remote host's realm, as determined
++by
++.Xr krb_realmofhost 3 .
++.It Fl l Ar user
++When connecting to the remote system, if the remote system
++understands the
++.Ev ENVIRON
++option, then
++.Ar user
++will be sent to the remote system as the value for the variable USER.
++This option implies the
++.Fl a
++option.
++This option may also be used with the
++.Ic open
++command.
++.It Fl n Ar tracefile
++Opens
++.Ar tracefile
++for recording trace information.
++See the
++.Ic set tracefile
++command below.
++.It Fl r
++Specifies a user interface similar to
++.Xr rlogin 1 .
++In this
++mode, the escape character is set to the tilde (~) character,
++unless modified by the -e option.
++.It Fl x
++Turns on encryption of the data stream if possible. This
++option is not available outside of the United States and
++Canada.
++.It Ar host
++Indicates the official name, an alias, or the Internet address
++of a remote host.
++.It Ar port
++Indicates a port number (address of an application). If a number is
++not specified, the default
++.Nm telnet
++port is used.
++.El
++.Pp
++When in rlogin mode, a line of the form ~. disconnects from the
++remote host; ~ is the telnet escape character.
++Similarly, the line ~^Z suspends the telnet session.
++The line ~^] escapes to the normal telnet escape prompt.
++.Pp
++Once a connection has been opened,
++.Nm telnet
++will attempt to enable the
++.Dv TELNET LINEMODE
++option.
++If this fails, then
++.Nm telnet
++will revert to one of two input modes:
++either \*(Lqcharacter at a time\*(Rq
++or \*(Lqold line by line\*(Rq
++depending on what the remote system supports.
++.Pp
++When
++.Dv LINEMODE
++is enabled, character processing is done on the
++local system, under the control of the remote system. When input
++editing or character echoing is to be disabled, the remote system
++will relay that information. The remote system will also relay
++changes to any special characters that happen on the remote
++system, so that they can take effect on the local system.
++.Pp
++In \*(Lqcharacter at a time\*(Rq mode, most
++text typed is immediately sent to the remote host for processing.
++.Pp
++In \*(Lqold line by line\*(Rq mode, all text is echoed locally,
++and (normally) only completed lines are sent to the remote host.
++The \*(Lqlocal echo character\*(Rq (initially \*(Lq^E\*(Rq) may be used
++to turn off and on the local echo
++(this would mostly be used to enter passwords
++without the password being echoed).
++.Pp
++If the
++.Dv LINEMODE
++option is enabled, or if the
++.Ic localchars
++toggle is
++.Dv TRUE
++(the default for \*(Lqold line by line\*(Lq; see below),
++the user's
++.Ic quit ,
++.Ic intr ,
++and
++.Ic flush
++characters are trapped locally, and sent as
++.Tn TELNET
++protocol sequences to the remote side.
++If
++.Dv LINEMODE
++has ever been enabled, then the user's
++.Ic susp
++and
++.Ic eof
++are also sent as
++.Tn TELNET
++protocol sequences,
++and
++.Ic quit
++is sent as a
++.Dv TELNET ABORT
++instead of
++.Dv BREAK
++There are options (see
++.Ic toggle
++.Ic autoflush
++and
++.Ic toggle
++.Ic autosynch
++below)
++which cause this action to flush subsequent output to the terminal
++(until the remote host acknowledges the
++.Tn TELNET
++sequence) and flush previous terminal input
++(in the case of
++.Ic quit
++and
++.Ic intr ) .
++.Pp
++While connected to a remote host,
++.Nm telnet
++command mode may be entered by typing the
++.Nm telnet
++\*(Lqescape character\*(Rq (initially \*(Lq^]\*(Rq).
++When in command mode, the normal terminal editing conventions are available.
++.Pp
++The following
++.Nm telnet
++commands are available.
++Only enough of each command to uniquely identify it need be typed
++(this is also true for arguments to the
++.Ic mode ,
++.Ic set ,
++.Ic toggle ,
++.Ic unset ,
++.Ic slc ,
++.Ic environ ,
++and
++.Ic display
++commands).
++.Pp
++.Bl -tag -width "mode type"
++.It Ic auth Ar argument ...
++The auth command manipulates the information sent through the
++.Dv TELNET AUTHENTICATE
++option. Valid arguments for the
++auth command are as follows:
++.Bl -tag -width "disable type"
++.It Ic disable Ar type
++Disables the specified type of authentication. To
++obtain a list of available types, use the
++.Ic auth disable \&?
++command.
++.It Ic enable Ar type
++Enables the specified type of authentication. To
++obtain a list of available types, use the
++.Ic auth enable \&?
++command.
++.It Ic status
++Lists the current status of the various types of
++authentication.
++.El
++.It Ic close
++Close a
++.Tn TELNET
++session and return to command mode.
++.It Ic display Ar argument ...
++Displays all, or some, of the
++.Ic set
++and
++.Ic toggle
++values (see below).
++.It Ic encrypt Ar argument ...
++The encrypt command manipulates the information sent through the
++.Dv TELNET ENCRYPT
++option.
++.Pp
++Note: Because of export controls, the
++.Dv TELNET ENCRYPT
++option is not supported outside of the United States and Canada.
++.Pp
++Valid arguments for the encrypt command are as follows:
++.Bl -tag -width Ar
++.It Ic disable Ar type Ic [input|output]
++Disables the specified type of encryption. If you
++omit the input and output, both input and output
++are disabled. To obtain a list of available
++types, use the
++.Ic encrypt disable \&?
++command.
++.It Ic enable Ar type Ic [input|output]
++Enables the specified type of encryption. If you
++omit input and output, both input and output are
++enabled. To obtain a list of available types, use the
++.Ic encrypt enable \&?
++command.
++.It Ic input
++This is the same as the
++.Ic encrypt start input
++command.
++.It Ic -input
++This is the same as the
++.Ic encrypt stop input
++command.
++.It Ic output
++This is the same as the
++.Ic encrypt start output
++command.
++.It Ic -output
++This is the same as the
++.Ic encrypt stop output
++command.
++.It Ic start Ic [input|output]
++Attempts to start encryption. If you omit
++.Ic input
++and
++.Ic output,
++both input and output are enabled. To
++obtain a list of available types, use the
++.Ic encrypt enable \&?
++command.
++.It Ic status
++Lists the current status of encryption.
++.It Ic stop Ic [input|output]
++Stops encryption. If you omit input and output,
++encryption is on both input and output.
++.It Ic type Ar type
++Sets the default type of encryption to be used
++with later
++.Ic encrypt start
++or
++.Ic encrypt stop
++commands.
++.El
++.It Ic environ Ar arguments...
++The
++.Ic environ
++command is used to manipulate the
++the variables that my be sent through the
++.Dv TELNET ENVIRON
++option.
++The initial set of variables is taken from the users
++environment, with only the
++.Ev DISPLAY
++and
++.Ev PRINTER
++variables being exported by default.
++The
++.Ev USER
++variable is also exported if the
++.Fl a
++or
++.Fl l
++options are used.
++.br
++Valid arguments for the
++.Ic environ
++command are:
++.Bl -tag -width Fl
++.It Ic define Ar variable value
++Define the variable
++.Ar variable
++to have a value of
++.Ar value.
++Any variables defined by this command are automatically exported.
++The
++.Ar value
++may be enclosed in single or double quotes so
++that tabs and spaces may be included.
++.It Ic undefine Ar variable
++Remove
++.Ar variable
++from the list of environment variables.
++.It Ic export Ar variable
++Mark the variable
++.Ar variable
++to be exported to the remote side.
++.It Ic unexport Ar variable
++Mark the variable
++.Ar variable
++to not be exported unless
++explicitly asked for by the remote side.
++.It Ic list
++List the current set of environment variables.
++Those marked with a
++.Cm *
++will be sent automatically,
++other variables will only be sent if explicitly requested.
++.It Ic \&?
++Prints out help information for the
++.Ic environ
++command.
++.El
++.It Ic logout
++Sends the
++.Dv TELNET LOGOUT
++option to the remote side.
++This command is similar to a
++.Ic close
++command; however, if the remote side does not support the
++.Dv LOGOUT
++option, nothing happens.
++If, however, the remote side does support the
++.Dv LOGOUT
++option, this command should cause the remote side to close the
++.Tn TELNET
++connection.
++If the remote side also supports the concept of
++suspending a user's session for later reattachment,
++the logout argument indicates that you
++should terminate the session immediately.
++.It Ic mode Ar type
++.Ar Type
++is one of several options, depending on the state of the
++.Tn TELNET
++session.
++The remote host is asked for permission to go into the requested mode.
++If the remote host is capable of entering that mode, the requested
++mode will be entered.
++.Bl -tag -width Ar
++.It Ic character
++Disable the
++.Dv TELNET LINEMODE
++option, or, if the remote side does not understand the
++.Dv LINEMODE
++option, then enter \*(Lqcharacter at a time\*(Lq mode.
++.It Ic line
++Enable the
++.Dv TELNET LINEMODE
++option, or, if the remote side does not understand the
++.Dv LINEMODE
++option, then attempt to enter \*(Lqold-line-by-line\*(Lq mode.
++.It Ic isig Pq Ic \-isig
++Attempt to enable (disable) the
++.Dv TRAPSIG
++mode of the
++.Dv LINEMODE
++option.
++This requires that the
++.Dv LINEMODE
++option be enabled.
++.It Ic edit Pq Ic \-edit
++Attempt to enable (disable) the
++.Dv EDIT
++mode of the
++.Dv LINEMODE
++option.
++This requires that the
++.Dv LINEMODE
++option be enabled.
++.It Ic softtabs Pq Ic \-softtabs
++Attempt to enable (disable) the
++.Dv SOFT_TAB
++mode of the
++.Dv LINEMODE
++option.
++This requires that the
++.Dv LINEMODE
++option be enabled.
++.ne 1i
++.It Ic litecho Pq Ic \-litecho
++Attempt to enable (disable) the
++.Dv LIT_ECHO
++mode of the
++.Dv LINEMODE
++option.
++This requires that the
++.Dv LINEMODE
++option be enabled.
++.It Ic \&?
++Prints out help information for the
++.Ic mode
++command.
++.El
++.It Xo
++.Ic open Ar host
++.Oo Op Fl l
++.Ar user
++.Oc Ns Oo Fl
++.Ar port Oc
++.Xc
++Open a connection to the named host.
++If no port number
++is specified,
++.Nm telnet
++will attempt to contact a
++.Tn TELNET
++server at the default port.
++The host specification may be either a host name (see
++.Xr hosts 5 )
++or an Internet address specified in the \*(Lqdot notation\*(Rq (see
++.Xr inet 3 ) .
++The
++.Op Fl l
++option may be used to specify the user name
++to be passed to the remote system via the
++.Ev ENVIRON
++option.
++When connecting to a non-standard port,
++.Nm telnet
++omits any automatic initiation of
++.Tn TELNET
++options. When the port number is preceded by a minus sign,
++the initial option negotiation is done.
++After establishing a connection, the file
++.Pa \&.telnetrc
++in the
++users home directory is opened. Lines beginning with a # are
++comment lines. Blank lines are ignored. Lines that begin
++without white space are the start of a machine entry. The
++first thing on the line is the name of the machine that is
++being connected to. The rest of the line, and successive
++lines that begin with white space are assumed to be
++.Nm telnet
++commands and are processed as if they had been typed
++in manually to the
++.Nm telnet
++command prompt.
++.It Ic quit
++Close any open
++.Tn TELNET
++session and exit
++.Nm telnet .
++An end of file (in command mode) will also close a session and exit.
++.It Ic send Ar arguments
++Sends one or more special character sequences to the remote host.
++The following are the arguments which may be specified
++(more than one argument may be specified at a time):
++.Pp
++.Bl -tag -width escape
++.It Ic abort
++Sends the
++.Dv TELNET ABORT
++(Abort
++processes)
++sequence.
++.It Ic ao
++Sends the
++.Dv TELNET AO
++(Abort Output) sequence, which should cause the remote system to flush
++all output
++.Em from
++the remote system
++.Em to
++the user's terminal.
++.It Ic ayt
++Sends the
++.Dv TELNET AYT
++(Are You There)
++sequence, to which the remote system may or may not choose to respond.
++.It Ic brk
++Sends the
++.Dv TELNET BRK
++(Break) sequence, which may have significance to the remote
++system.
++.It Ic ec
++Sends the
++.Dv TELNET EC
++(Erase Character)
++sequence, which should cause the remote system to erase the last character
++entered.
++.It Ic el
++Sends the
++.Dv TELNET EL
++(Erase Line)
++sequence, which should cause the remote system to erase the line currently
++being entered.
++.It Ic eof
++Sends the
++.Dv TELNET EOF
++(End Of File)
++sequence.
++.It Ic eor
++Sends the
++.Dv TELNET EOR
++(End of Record)
++sequence.
++.It Ic escape
++Sends the current
++.Nm telnet
++escape character (initially \*(Lq^\*(Rq).
++.It Ic ga
++Sends the
++.Dv TELNET GA
++(Go Ahead)
++sequence, which likely has no significance to the remote system.
++.It Ic getstatus
++If the remote side supports the
++.Dv TELNET STATUS
++command,
++.Ic getstatus
++will send the subnegotiation to request that the server send
++its current option status.
++.ne 1i
++.It Ic ip
++Sends the
++.Dv TELNET IP
++(Interrupt Process) sequence, which should cause the remote
++system to abort the currently running process.
++.It Ic nop
++Sends the
++.Dv TELNET NOP
++(No OPeration)
++sequence.
++.It Ic susp
++Sends the
++.Dv TELNET SUSP
++(SUSPend process)
++sequence.
++.It Ic synch
++Sends the
++.Dv TELNET SYNCH
++sequence.
++This sequence causes the remote system to discard all previously typed
++(but not yet read) input.
++This sequence is sent as
++.Tn TCP
++urgent
++data (and may not work if the remote system is a
++.Bx 4.2
++system -- if
++it doesn't work, a lower case \*(Lqr\*(Rq may be echoed on the terminal).
++.It Ic do Ar cmd
++.It Ic dont Ar cmd
++.It Ic will Ar cmd
++.It Ic wont Ar cmd
++Sends the
++.Dv TELNET DO
++.Ar cmd
++sequence.
++.Ar Cmd
++can be either a decimal number between 0 and 255,
++or a symbolic name for a specific
++.Dv TELNET
++command.
++.Ar Cmd
++can also be either
++.Ic help
++or
++.Ic \&?
++to print out help information, including
++a list of known symbolic names.
++.It Ic \&?
++Prints out help information for the
++.Ic send
++command.
++.El
++.It Ic set Ar argument value
++.It Ic unset Ar argument value
++The
++.Ic set
++command will set any one of a number of
++.Nm telnet
++variables to a specific value or to
++.Dv TRUE .
++The special value
++.Ic off
++turns off the function associated with
++the variable, this is equivalent to using the
++.Ic unset
++command.
++The
++.Ic unset
++command will disable or set to
++.Dv FALSE
++any of the specified functions.
++The values of variables may be interrogated with the
++.Ic display
++command.
++The variables which may be set or unset, but not toggled, are
++listed here. In addition, any of the variables for the
++.Ic toggle
++command may be explicitly set or unset using
++the
++.Ic set
++and
++.Ic unset
++commands.
++.Bl -tag -width escape
++.It Ic ayt
++If
++.Tn TELNET
++is in localchars mode, or
++.Dv LINEMODE
++is enabled, and the status character is typed, a
++.Dv TELNET AYT
++sequence (see
++.Ic send ayt
++preceding) is sent to the
++remote host. The initial value for the "Are You There"
++character is the terminal's status character.
++.It Ic echo
++This is the value (initially \*(Lq^E\*(Rq) which, when in
++\*(Lqline by line\*(Rq mode, toggles between doing local echoing
++of entered characters (for normal processing), and suppressing
++echoing of entered characters (for entering, say, a password).
++.It Ic eof
++If
++.Nm telnet
++is operating in
++.Dv LINEMODE
++or \*(Lqold line by line\*(Rq mode, entering this character
++as the first character on a line will cause this character to be
++sent to the remote system.
++The initial value of the eof character is taken to be the terminal's
++.Ic eof
++character.
++.It Ic erase
++If
++.Nm telnet
++is in
++.Ic localchars
++mode (see
++.Ic toggle
++.Ic localchars
++below),
++.Sy and
++if
++.Nm telnet
++is operating in \*(Lqcharacter at a time\*(Rq mode, then when this
++character is typed, a
++.Dv TELNET EC
++sequence (see
++.Ic send
++.Ic ec
++above)
++is sent to the remote system.
++The initial value for the erase character is taken to be
++the terminal's
++.Ic erase
++character.
++.It Ic escape
++This is the
++.Nm telnet
++escape character (initially \*(Lq^[\*(Rq) which causes entry
++into
++.Nm telnet
++command mode (when connected to a remote system).
++.It Ic flushoutput
++If
++.Nm telnet
++is in
++.Ic localchars
++mode (see
++.Ic toggle
++.Ic localchars
++below)
++and the
++.Ic flushoutput
++character is typed, a
++.Dv TELNET AO
++sequence (see
++.Ic send
++.Ic ao
++above)
++is sent to the remote host.
++The initial value for the flush character is taken to be
++the terminal's
++.Ic flush
++character.
++.It Ic forw1
++.It Ic forw2
++If
++.Tn TELNET
++is operating in
++.Dv LINEMODE ,
++these are the
++characters that, when typed, cause partial lines to be
++forwarded to the remote system. The initial value for
++the forwarding characters are taken from the terminal's
++eol and eol2 characters.
++.It Ic interrupt
++If
++.Nm telnet
++is in
++.Ic localchars
++mode (see
++.Ic toggle
++.Ic localchars
++below)
++and the
++.Ic interrupt
++character is typed, a
++.Dv TELNET IP
++sequence (see
++.Ic send
++.Ic ip
++above)
++is sent to the remote host.
++The initial value for the interrupt character is taken to be
++the terminal's
++.Ic intr
++character.
++.It Ic kill
++If
++.Nm telnet
++is in
++.Ic localchars
++mode (see
++.Ic toggle
++.Ic localchars
++below),
++.Ic and
++if
++.Nm telnet
++is operating in \*(Lqcharacter at a time\*(Rq mode, then when this
++character is typed, a
++.Dv TELNET EL
++sequence (see
++.Ic send
++.Ic el
++above)
++is sent to the remote system.
++The initial value for the kill character is taken to be
++the terminal's
++.Ic kill
++character.
++.It Ic lnext
++If
++.Nm telnet
++is operating in
++.Dv LINEMODE
++or \*(Lqold line by line\*(Lq mode, then this character is taken to
++be the terminal's
++.Ic lnext
++character.
++The initial value for the lnext character is taken to be
++the terminal's
++.Ic lnext
++character.
++.It Ic quit
++If
++.Nm telnet
++is in
++.Ic localchars
++mode (see
++.Ic toggle
++.Ic localchars
++below)
++and the
++.Ic quit
++character is typed, a
++.Dv TELNET BRK
++sequence (see
++.Ic send
++.Ic brk
++above)
++is sent to the remote host.
++The initial value for the quit character is taken to be
++the terminal's
++.Ic quit
++character.
++.It Ic reprint
++If
++.Nm telnet
++is operating in
++.Dv LINEMODE
++or \*(Lqold line by line\*(Lq mode, then this character is taken to
++be the terminal's
++.Ic reprint
++character.
++The initial value for the reprint character is taken to be
++the terminal's
++.Ic reprint
++character.
++.It Ic rlogin
++This is the rlogin escape character.
++If set, the normal
++.Tn TELNET
++escape character is ignored unless it is
++preceded by this character at the beginning of a line.
++This character, at the beginning of a line followed by
++a "." closes the connection; when followed by a ^Z it
++suspends the telnet command. The initial state is to
++disable the rlogin escape character.
++.It Ic start
++If the
++.Dv TELNET TOGGLE-FLOW-CONTROL
++option has been enabled,
++then this character is taken to
++be the terminal's
++.Ic start
++character.
++The initial value for the kill character is taken to be
++the terminal's
++.Ic start
++character.
++.It Ic stop
++If the
++.Dv TELNET TOGGLE-FLOW-CONTROL
++option has been enabled,
++then this character is taken to
++be the terminal's
++.Ic stop
++character.
++The initial value for the kill character is taken to be
++the terminal's
++.Ic stop
++character.
++.It Ic susp
++If
++.Nm telnet
++is in
++.Ic localchars
++mode, or
++.Dv LINEMODE
++is enabled, and the
++.Ic suspend
++character is typed, a
++.Dv TELNET SUSP
++sequence (see
++.Ic send
++.Ic susp
++above)
++is sent to the remote host.
++The initial value for the suspend character is taken to be
++the terminal's
++.Ic suspend
++character.
++.ne 1i
++.It Ic tracefile
++This is the file to which the output, caused by
++.Ic netdata
++or
++.Ic option
++tracing being
++.Dv TRUE ,
++will be written. If it is set to
++.Dq Fl ,
++then tracing information will be written to standard output (the default).
++.It Ic worderase
++If
++.Nm telnet
++is operating in
++.Dv LINEMODE
++or \*(Lqold line by line\*(Lq mode, then this character is taken to
++be the terminal's
++.Ic worderase
++character.
++The initial value for the worderase character is taken to be
++the terminal's
++.Ic worderase
++character.
++.It Ic \&?
++Displays the legal
++.Ic set
++.Pq Ic unset
++commands.
++.El
++.It Ic slc Ar state
++The
++.Ic slc
++command (Set Local Characters) is used to set
++or change the state of the the special
++characters when the
++.Dv TELNET LINEMODE
++option has
++been enabled. Special characters are characters that get
++mapped to
++.Tn TELNET
++commands sequences (like
++.Ic ip
++or
++.Ic quit )
++or line editing characters (like
++.Ic erase
++and
++.Ic kill ) .
++By default, the local special characters are exported.
++.Bl -tag -width Fl
++.It Ic check
++Verify the current settings for the current special characters.
++The remote side is requested to send all the current special
++character settings, and if there are any discrepancies with
++the local side, the local side will switch to the remote value.
++.It Ic export
++Switch to the local defaults for the special characters. The
++local default characters are those of the local terminal at
++the time when
++.Nm telnet
++was started.
++.It Ic import
++Switch to the remote defaults for the special characters.
++The remote default characters are those of the remote system
++at the time when the
++.Tn TELNET
++connection was established.
++.It Ic \&?
++Prints out help information for the
++.Ic slc
++command.
++.El
++.It Ic status
++Show the current status of
++.Nm telnet .
++This includes the peer one is connected to, as well
++as the current mode.
++.It Ic toggle Ar arguments ...
++Toggle (between
++.Dv TRUE
++and
++.Dv FALSE )
++various flags that control how
++.Nm telnet
++responds to events.
++These flags may be set explicitly to
++.Dv TRUE
++or
++.Dv FALSE
++using the
++.Ic set
++and
++.Ic unset
++commands listed above.
++More than one argument may be specified.
++The state of these flags may be interrogated with the
++.Ic display
++command.
++Valid arguments are:
++.Bl -tag -width Ar
++.It Ic authdebug
++Turns on debugging information for the authentication code.
++.It Ic autoflush
++If
++.Ic autoflush
++and
++.Ic localchars
++are both
++.Dv TRUE ,
++then when the
++.Ic ao ,
++or
++.Ic quit
++characters are recognized (and transformed into
++.Tn TELNET
++sequences; see
++.Ic set
++above for details),
++.Nm telnet
++refuses to display any data on the user's terminal
++until the remote system acknowledges (via a
++.Dv TELNET TIMING MARK
++option)
++that it has processed those
++.Tn TELNET
++sequences.
++The initial value for this toggle is
++.Dv TRUE
++if the terminal user had not
++done an "stty noflsh", otherwise
++.Dv FALSE
++(see
++.Xr stty 1 ) .
++.It Ic autodecrypt
++When the
++.Dv TELNET ENCRYPT
++option is negotiated, by
++default the actual encryption (decryption) of the data
++stream does not start automatically. The autoencrypt
++(autodecrypt) command states that encryption of the
++output (input) stream should be enabled as soon as
++possible.
++.sp
++.Pp
++Note: Because of export controls, the
++.Dv TELNET ENCRYPT
++option is not supported outside the United States and Canada.
++.It Ic autologin
++If the remote side supports the
++.Dv TELNET AUTHENTICATION
++option
++.Tn TELNET
++attempts to use it to perform automatic authentication. If the
++.Dv AUTHENTICATION
++option is not supported, the user's login
++name are propagated through the
++.Dv TELNET ENVIRON
++option.
++This command is the same as specifying
++.Ar a
++option on the
++.Ic open
++command.
++.It Ic autosynch
++If
++.Ic autosynch
++and
++.Ic localchars
++are both
++.Dv TRUE ,
++then when either the
++.Ic intr
++or
++.Ic quit
++characters is typed (see
++.Ic set
++above for descriptions of the
++.Ic intr
++and
++.Ic quit
++characters), the resulting
++.Tn TELNET
++sequence sent is followed by the
++.Dv TELNET SYNCH
++sequence.
++This procedure
++.Ic should
++cause the remote system to begin throwing away all previously
++typed input until both of the
++.Tn TELNET
++sequences have been read and acted upon.
++The initial value of this toggle is
++.Dv FALSE .
++.It Ic binary
++Enable or disable the
++.Dv TELNET BINARY
++option on both input and output.
++.It Ic inbinary
++Enable or disable the
++.Dv TELNET BINARY
++option on input.
++.It Ic outbinary
++Enable or disable the
++.Dv TELNET BINARY
++option on output.
++.It Ic crlf
++If this is
++.Dv TRUE ,
++then carriage returns will be sent as
++.Li <CR><LF> .
++If this is
++.Dv FALSE ,
++then carriage returns will be send as
++.Li <CR><NUL> .
++The initial value for this toggle is
++.Dv FALSE .
++.It Ic crmod
++Toggle carriage return mode.
++When this mode is enabled, most carriage return characters received from
++the remote host will be mapped into a carriage return followed by
++a line feed.
++This mode does not affect those characters typed by the user, only
++those received from the remote host.
++This mode is not very useful unless the remote host
++only sends carriage return, but never line feed.
++The initial value for this toggle is
++.Dv FALSE .
++.It Ic debug
++Toggles socket level debugging (useful only to the
++.Ic super user ) .
++The initial value for this toggle is
++.Dv FALSE .
++.It Ic encdebug
++Turns on debugging information for the encryption code.
++.It Ic localchars
++If this is
++.Dv TRUE ,
++then the
++.Ic flush ,
++.Ic interrupt ,
++.Ic quit ,
++.Ic erase ,
++and
++.Ic kill
++characters (see
++.Ic set
++above) are recognized locally, and transformed into (hopefully) appropriate
++.Tn TELNET
++control sequences
++(respectively
++.Ic ao ,
++.Ic ip ,
++.Ic brk ,
++.Ic ec ,
++and
++.Ic el ;
++see
++.Ic send
++above).
++The initial value for this toggle is
++.Dv TRUE
++in \*(Lqold line by line\*(Rq mode,
++and
++.Dv FALSE
++in \*(Lqcharacter at a time\*(Rq mode.
++When the
++.Dv LINEMODE
++option is enabled, the value of
++.Ic localchars
++is ignored, and assumed to always be
++.Dv TRUE .
++If
++.Dv LINEMODE
++has ever been enabled, then
++.Ic quit
++is sent as
++.Ic abort ,
++and
++.Ic eof and
++.B suspend
++are sent as
++.Ic eof and
++.Ic susp ,
++see
++.Ic send
++above).
++.It Ic netdata
++Toggles the display of all network data (in hexadecimal format).
++The initial value for this toggle is
++.Dv FALSE .
++.It Ic options
++Toggles the display of some internal
++.Nm telnet
++protocol processing (having to do with
++.Tn TELNET
++options).
++The initial value for this toggle is
++.Dv FALSE .
++.ne 1i
++.It Ic prettydump
++When the
++.Ic netdata
++toggle is enabled, if
++.Ic prettydump
++is enabled the output from the
++.Ic netdata
++command will be formatted in a more user readable format.
++Spaces are put between each character in the output, and the
++beginning of any
++.Tn TELNET
++escape sequence is preceded by a '*' to aid in locating them.
++.It Ic skiprc
++When the skiprc toggle is
++.Dv TRUE ,
++.Tn TELNET
++skips the reading of the
++.Pa \&.telnetrc
++file in the users home
++directory when connections are opened. The initial
++value for this toggle is
++.Dv FALSE.
++.It Ic termdata
++Toggles the display of all terminal data (in hexadecimal format).
++The initial value for this toggle is
++.Dv FALSE .
++.It Ic verbose_encrypt
++When the
++.Ic verbose_encrypt
++toggle is
++.Dv TRUE ,
++.Tn TELNET
++prints out a message each time encryption is enabled or
++disabled. The initial value for this toggle is
++.Dv FALSE.
++Note: Because of export controls, data encryption
++is not supported outside of the United States and Canada.
++.It Ic \&?
++Displays the legal
++.Ic toggle
++commands.
++.El
++.It Ic z
++Suspend
++.Nm telnet .
++This command only works when the user is using the
++.Xr csh 1 .
++.It Ic \&! Op Ar command
++Execute a single command in a subshell on the local
++system. If
++.Ic command
++is omitted, then an interactive
++subshell is invoked.
++.It Ic \&? Op Ar command
++Get help. With no arguments,
++.Nm telnet
++prints a help summary.
++If a command is specified,
++.Nm telnet
++will print the help information for just that command.
++.El
++.Sh ENVIRONMENT
++.Nm Telnet
++uses at least the
++.Ev HOME ,
++.Ev SHELL ,
++.Ev DISPLAY ,
++and
++.Ev TERM
++environment variables.
++Other environment variables may be propagated
++to the other side via the
++.Dv TELNET ENVIRON
++option.
++.Sh FILES
++.Bl -tag -width ~/.telnetrc -compact
++.It Pa ~/.telnetrc
++user customized telnet startup values
++.El
++.Sh HISTORY
++The
++.Nm Telnet
++command appeared in
++.Bx 4.2 .
++.Sh NOTES
++.Pp
++On some remote systems, echo has to be turned off manually when in
++\*(Lqold line by line\*(Rq mode.
++.Pp
++In \*(Lqold line by line\*(Rq mode or
++.Dv LINEMODE
++the terminal's
++.Ic eof
++character is only recognized (and sent to the remote system)
++when it is the first character on a line.
+diff --git a/telnetd/Makefile.am b/telnetd/Makefile.am
+index 81704fa..746cd10 100644
+--- a/telnetd/Makefile.am
++++ b/telnetd/Makefile.am
+@@ -26,6 +26,12 @@ EXTRA_PROGRAMS = telnetd
+ telnetd_SOURCES = telnetd.c pty.c term.c utility.c state.c termstat.c slc.c
+ noinst_HEADERS = telnetd.h
+
++if ENABLE_telnetd
++man_MANS = telnetd.8
++endif
++
++EXTRA_DIST = $(man_MANS)
++
+ @PATHDEFS_MAKE@
+
+ AM_CPPFLAGS = $(PATHDEF_DEV) $(PATHDEF_TTY) $(PATHDEF_LOGIN)
+@@ -36,3 +42,4 @@ LDADD = -L../libinetutils -linetutils \
+ -L../libtelnet -ltelnet \
+ ../lib/libgnu.a \
+ $(LIBTERMCAP) $(LIBUTIL) $(LIBCRYPT) $(LIBAUTH)
++
+diff --git a/telnetd/telnetd.8 b/telnetd/telnetd.8
+new file mode 100644
+index 0000000..05bcf74
+--- /dev/null
++++ b/telnetd/telnetd.8
+@@ -0,0 +1,603 @@
++.\" Copyright (c) 1983, 1993
++.\" The Regents of the University of California. All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\" notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\" notice, this list of conditions and the following disclaimer in the
++.\" documentation and/or other materials provided with the distribution.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\" may be used to endorse or promote products derived from this software
++.\" without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\" @(#)telnetd.8 8.4 (Berkeley) 6/1/94
++.\"
++.Dd June 1, 1994
++.Dt TELNETD 8
++.Os BSD 4.2
++.Sh NAME
++.Nm telnetd
++.Nd DARPA
++.Tn TELNET
++protocol server
++.Sh SYNOPSIS
++.Nm /usr/libexec/telnetd
++.Op Fl BUhlkns
++.Op Fl D Ar debugmode
++.Op Fl I Ns Ar initid
++.Op Fl S Ar tos
++.Op Fl X Ar authtype
++.Op Fl a Ar authmode
++.Op Fl edebug
++.Op Fl r Ns Ar lowpty-highpty
++.Op Fl u Ar len
++.Op Fl debug Op Ar port
++.Sh DESCRIPTION
++The
++.Nm telnetd
++command is a server which supports the
++.Tn DARPA
++standard
++.Tn TELNET
++virtual terminal protocol.
++.Nm Telnetd
++is normally invoked by the internet server (see
++.Xr inetd 8 )
++for requests to connect to the
++.Tn TELNET
++port as indicated by the
++.Pa /etc/services
++file (see
++.Xr services 5 ) .
++The
++.Fl debug
++option may be used to start up
++.Nm telnetd
++manually, instead of through
++.Xr inetd 8 .
++If started up this way,
++.Ar port
++may be specified to run
++.Nm telnetd
++on an alternate
++.Tn TCP
++port number.
++.Pp
++The
++.Nm telnetd
++command accepts the following options:
++.Bl -tag -width "-a authmode"
++.It Fl a Ar authmode
++This option may be used for specifying what mode should
++be used for authentication.
++Note that this option is only useful if
++.Nm telnetd
++has been compiled with support for the
++.Dv AUTHENTICATION
++option.
++There are several valid values for
++.Ar authmode:
++.Bl -tag -width debug
++.It debug
++Turns on authentication debugging code.
++.It user
++Only allow connections when the remote user
++can provide valid authentication information
++to identify the remote user,
++and is allowed access to the specified account
++without providing a password.
++.It valid
++Only allow connections when the remote user
++can provide valid authentication information
++to identify the remote user.
++The
++.Xr login 1
++command will provide any additional user verification
++needed if the remote user is not allowed automatic
++access to the specified account.
++.It other
++Only allow connections that supply some authentication information.
++This option is currently not supported
++by any of the existing authentication mechanisms,
++and is thus the same as specifying
++.Fl a
++.Cm valid .
++.It none
++This is the default state.
++Authentication information is not required.
++If no or insufficient authentication information
++is provided, then the
++.Xr login 1
++program will provide the necessary user
++verification.
++.It off
++This disables the authentication code.
++All user verification will happen through the
++.Xr login 1
++program.
++.El
++.It Fl B
++Specifies bftp server mode. In this mode,
++.Nm telnetd
++causes login to start a
++.Xr bftp 1
++session rather than the user's
++normal shell. In bftp daemon mode normal
++logins are not supported, and it must be used
++on a port other than the normal
++.Tn TELNET
++port.
++.It Fl D Ar debugmode
++This option may be used for debugging purposes.
++This allows
++.Nm telnetd
++to print out debugging information
++to the connection, allowing the user to see what
++.Nm telnetd
++is doing.
++There are several possible values for
++.Ar debugmode:
++.Bl -tag -width exercise
++.It Cm options
++Prints information about the negotiation of
++.Tn TELNET
++options.
++.It Cm report
++Prints the
++.Cm options
++information, plus some additional information
++about what processing is going on.
++.It Cm netdata
++Displays the data stream received by
++.Nm telnetd.
++.It Cm ptydata
++Displays data written to the pty.
++.It Cm exercise
++Has not been implemented yet.
++.El
++.It Fl debug
++Enables debugging on each socket created by
++.Nm telnetd
++(see
++.Dv SO_DEBUG
++in
++.Xr socket 2 ) .
++.It Fl edebug
++If
++.Nm telnetd
++has been compiled with support for data encryption, then the
++.Fl edebug
++option may be used to enable encryption debugging code.
++.It Fl h
++Disables the printing of host-specific information before
++login has been completed.
++.It Fl I Ar initid
++This option is only applicable to
++.Tn UNICOS
++systems prior to 7.0.
++It specifies the
++.Dv ID
++from
++.Pa /etc/inittab
++to use when init starts login sessions. The default
++.Dv ID
++is
++.Dv fe.
++.It Fl k
++This option is only useful if
++.Nm telnetd
++has been compiled with both linemode and kludge linemode
++support. If the
++.Fl k
++option is specified, then if the remote client does not
++support the
++.Dv LINEMODE
++option, then
++.Nm telnetd
++will operate in character at a time mode.
++It will still support kludge linemode, but will only
++go into kludge linemode if the remote client requests
++it.
++(This is done by by the client sending
++.Dv DONT SUPPRESS-GO-AHEAD
++and
++.Dv DONT ECHO . )
++The
++.Fl k
++option is most useful when there are remote clients
++that do not support kludge linemode, but pass the heuristic
++(if they respond with
++.Dv WILL TIMING-MARK
++in response to a
++.Dv DO TIMING-MARK)
++for kludge linemode support.
++.It Fl l
++Specifies line mode. Tries to force clients to use line-
++at-a-time mode.
++If the
++.Dv LINEMODE
++option is not supported, it will go
++into kludge linemode.
++.It Fl n
++Disable
++.Dv TCP
++keep-alives. Normally
++.Nm telnetd
++enables the
++.Tn TCP
++keep-alive mechanism to probe connections that
++have been idle for some period of time to determine
++if the client is still there, so that idle connections
++from machines that have crashed or can no longer
++be reached may be cleaned up.
++.It Fl r Ar lowpty-highpty
++This option is only enabled when
++.Nm telnetd
++is compiled for
++.Dv UNICOS.
++It specifies an inclusive range of pseudo-terminal devices to
++use. If the system has sysconf variable
++.Dv _SC_CRAY_NPTY
++configured, the default pty search range is 0 to
++.Dv _SC_CRAY_NPTY;
++otherwise, the default range is 0 to 128. Either
++.Ar lowpty
++or
++.Ar highpty
++may be omitted to allow changing
++either end of the search range. If
++.Ar lowpty
++is omitted, the - character is still required so that
++.Nm telnetd
++can differentiate
++.Ar highpty
++from
++.Ar lowpty .
++.It Fl s
++This option is only enabled if
++.Nm telnetd
++is compiled with support for
++.Tn SecurID
++cards.
++It causes the
++.Fl s
++option to be passed on to
++.Xr login 1 ,
++and thus is only useful if
++.Xr login 1
++supports the
++.Fl s
++flag to indicate that only
++.Tn SecurID
++validated logins are allowed, and is
++usually useful for controlling remote logins
++from outside of a firewall.
++.It Fl S Ar tos
++.It Fl u Ar len
++This option is used to specify the size of the field
++in the
++.Dv utmp
++structure that holds the remote host name.
++If the resolved host name is longer than
++.Ar len ,
++the dotted decimal value will be used instead.
++This allows hosts with very long host names that
++overflow this field to still be uniquely identified.
++Specifying
++.Fl u0
++indicates that only dotted decimal addresses
++should be put into the
++.Pa utmp
++file.
++.ne 1i
++.It Fl U
++This option causes
++.Nm telnetd
++to refuse connections from addresses that
++cannot be mapped back into a symbolic name
++via the
++.Xr gethostbyaddr 3
++routine.
++.It Fl X Ar authtype
++This option is only valid if
++.Nm telnetd
++has been built with support for the authentication option.
++It disables the use of
++.Ar authtype
++authentication, and
++can be used to temporarily disable
++a specific authentication type without having to recompile
++.Nm telnetd .
++.El
++.Pp
++.Nm Telnetd
++operates by allocating a pseudo-terminal device (see
++.Xr pty 4 )
++for a client, then creating a login process which has
++the slave side of the pseudo-terminal as
++.Dv stdin ,
++.Dv stdout
++and
++.Dv stderr .
++.Nm Telnetd
++manipulates the master side of the pseudo-terminal,
++implementing the
++.Tn TELNET
++protocol and passing characters
++between the remote client and the login process.
++.Pp
++When a
++.Tn TELNET
++session is started up,
++.Nm telnetd
++sends
++.Tn TELNET
++options to the client side indicating
++a willingness to do the
++following
++.Tn TELNET
++options, which are described in more detail below:
++.Bd -literal -offset indent
++DO AUTHENTICATION
++WILL ENCRYPT
++DO TERMINAL TYPE
++DO TSPEED
++DO XDISPLOC
++DO NEW-ENVIRON
++DO ENVIRON
++WILL SUPPRESS GO AHEAD
++DO ECHO
++DO LINEMODE
++DO NAWS
++WILL STATUS
++DO LFLOW
++DO TIMING-MARK
++.Ed
++.Pp
++The pseudo-terminal allocated to the client is configured
++to operate in \*(lqcooked\*(rq mode, and with
++.Dv XTABS and
++.Dv CRMOD
++enabled (see
++.Xr tty 4 ) .
++.Pp
++.Nm Telnetd
++has support for enabling locally the following
++.Tn TELNET
++options:
++.Bl -tag -width "DO AUTHENTICATION"
++.It "WILL ECHO"
++When the
++.Dv LINEMODE
++option is enabled, a
++.Dv WILL ECHO
++or
++.Dv WONT ECHO
++will be sent to the client to indicate the
++current state of terminal echoing.
++When terminal echo is not desired, a
++.Dv WILL ECHO
++is sent to indicate that
++.Tn telnetd
++will take care of echoing any data that needs to be
++echoed to the terminal, and then nothing is echoed.
++When terminal echo is desired, a
++.Dv WONT ECHO
++is sent to indicate that
++.Tn telnetd
++will not be doing any terminal echoing, so the
++client should do any terminal echoing that is needed.
++.It "WILL BINARY"
++Indicates that the client is willing to send a
++8 bits of data, rather than the normal 7 bits
++of the Network Virtual Terminal.
++.It "WILL SGA"
++Indicates that it will not be sending
++.Dv IAC GA,
++go ahead, commands.
++.It "WILL STATUS"
++Indicates a willingness to send the client, upon
++request, of the current status of all
++.Tn TELNET
++options.
++.It "WILL TIMING-MARK"
++Whenever a
++.Dv DO TIMING-MARK
++command is received, it is always responded
++to with a
++.Dv WILL TIMING-MARK
++.ne 1i
++.It "WILL LOGOUT"
++When a
++.Dv DO LOGOUT
++is received, a
++.Dv WILL LOGOUT
++is sent in response, and the
++.Tn TELNET
++session is shut down.
++.It "WILL ENCRYPT"
++Only sent if
++.Nm telnetd
++is compiled with support for data encryption, and
++indicates a willingness to decrypt
++the data stream.
++.El
++.Pp
++.Nm Telnetd
++has support for enabling remotely the following
++.Tn TELNET
++options:
++.Bl -tag -width "DO AUTHENTICATION"
++.It "DO BINARY"
++Sent to indicate that
++.Tn telnetd
++is willing to receive an 8 bit data stream.
++.It "DO LFLOW"
++Requests that the client handle flow control
++characters remotely.
++.It "DO ECHO"
++This is not really supported, but is sent to identify a 4.2BSD
++.Xr telnet 1
++client, which will improperly respond with
++.Dv WILL ECHO.
++If a
++.Dv WILL ECHO
++is received, a
++.Dv DONT ECHO
++will be sent in response.
++.It "DO TERMINAL-TYPE"
++Indicates a desire to be able to request the
++name of the type of terminal that is attached
++to the client side of the connection.
++.It "DO SGA"
++Indicates that it does not need to receive
++.Dv IAC GA,
++the go ahead command.
++.It "DO NAWS"
++Requests that the client inform the server when
++the window (display) size changes.
++.It "DO TERMINAL-SPEED"
++Indicates a desire to be able to request information
++about the speed of the serial line to which
++the client is attached.
++.It "DO XDISPLOC"
++Indicates a desire to be able to request the name
++of the X windows display that is associated with
++the telnet client.
++.It "DO NEW-ENVIRON"
++Indicates a desire to be able to request environment
++variable information, as described in RFC 1572.
++.It "DO ENVIRON"
++Indicates a desire to be able to request environment
++variable information, as described in RFC 1408.
++.It "DO LINEMODE"
++Only sent if
++.Nm telnetd
++is compiled with support for linemode, and
++requests that the client do line by line processing.
++.It "DO TIMING-MARK"
++Only sent if
++.Nm telnetd
++is compiled with support for both linemode and
++kludge linemode, and the client responded with
++.Dv WONT LINEMODE.
++If the client responds with
++.Dv WILL TM,
++the it is assumed that the client supports
++kludge linemode.
++Note that the
++.Op Fl k
++option can be used to disable this.
++.It "DO AUTHENTICATION"
++Only sent if
++.Nm telnetd
++is compiled with support for authentication, and
++indicates a willingness to receive authentication
++information for automatic login.
++.It "DO ENCRYPT"
++Only sent if
++.Nm telnetd
++is compiled with support for data encryption, and
++indicates a willingness to decrypt
++the data stream.
++.Sh ENVIRONMENT
++.Sh FILES
++.Pa /etc/services
++.br
++.Pa /etc/inittab
++(UNICOS systems only)
++.br
++.Pa /etc/iptos
++(if supported)
++.br
++.Pa /usr/ucb/bftp
++(if supported)
++.Sh "SEE ALSO"
++.Xr telnet 1 ,
++.Xr login 1 ,
++.Xr bftp 1
++(if supported)
++.Sh STANDARDS
++.Bl -tag -compact -width RFC-1572
++.It Cm RFC-854
++.Tn TELNET
++PROTOCOL SPECIFICATION
++.It Cm RFC-855
++TELNET OPTION SPECIFICATIONS
++.It Cm RFC-856
++TELNET BINARY TRANSMISSION
++.It Cm RFC-857
++TELNET ECHO OPTION
++.It Cm RFC-858
++TELNET SUPPRESS GO AHEAD OPTION
++.It Cm RFC-859
++TELNET STATUS OPTION
++.It Cm RFC-860
++TELNET TIMING MARK OPTION
++.It Cm RFC-861
++TELNET EXTENDED OPTIONS - LIST OPTION
++.It Cm RFC-885
++TELNET END OF RECORD OPTION
++.It Cm RFC-1073
++Telnet Window Size Option
++.It Cm RFC-1079
++Telnet Terminal Speed Option
++.It Cm RFC-1091
++Telnet Terminal-Type Option
++.It Cm RFC-1096
++Telnet X Display Location Option
++.It Cm RFC-1123
++Requirements for Internet Hosts -- Application and Support
++.It Cm RFC-1184
++Telnet Linemode Option
++.It Cm RFC-1372
++Telnet Remote Flow Control Option
++.It Cm RFC-1416
++Telnet Authentication Option
++.It Cm RFC-1411
++Telnet Authentication: Kerberos Version 4
++.It Cm RFC-1412
++Telnet Authentication: SPX
++.It Cm RFC-1571
++Telnet Environment Option Interoperability Issues
++.It Cm RFC-1572
++Telnet Environment Option
++.Sh BUGS
++Some
++.Tn TELNET
++commands are only partially implemented.
++.Pp
++Because of bugs in the original 4.2 BSD
++.Xr telnet 1 ,
++.Nm telnetd
++performs some dubious protocol exchanges to try to discover if the remote
++client is, in fact, a 4.2 BSD
++.Xr telnet 1 .
++.Pp
++Binary mode
++has no common interpretation except between similar operating systems
++(Unix in this case).
++.Pp
++The terminal type name received from the remote client is converted to
++lower case.
++.Pp
++.Nm Telnetd
++never sends
++.Tn TELNET
++.Dv IAC GA
++(go ahead) commands.
+--
+1.7.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 1db5f42..d420de8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
+01_revert_manpage_removal.patch
10_syslog_klog_doc.patch
22_syslogd_conf.patch
30_ping_suid_perms.patch