Imported from conserver-8.1.7.tar.gz

This commit is contained in:
Bryan Stansell 2004-05-28 11:03:33 -07:00
parent cf461c7ce8
commit c0f8de9c24
17 changed files with 346 additions and 398 deletions

24
CHANGES
View File

@ -1,10 +1,26 @@
CHANGES
=======
version 8.1.7 (May 28, 2004):
- cleaned up the manpages a bit to make things clearer and more
standard - reported by Dave Stuit <djs@tellme.com>
- added an east coast mirror! http://conserver.syr.edu/ -
thanks to Christopher T. Beers <ctbeers@syr.edu>
- primary group of users not included in '@group' syntax -
reported by Phil Dibowitz <phil@usc.edu>
- changed '@group' behavior such that groups are checked when
needed, instead of cached at startup, which is more logical
- missing variables when building convert with tcp_wrappers -
reported by Nikolaos Papavassiliou
<Nikolaos.Papavassiliou@reuters.com>
- added --with-rpath option - suggested by Phil Dibowitz
<phil@usc.edu>
version 8.1.6 (May 25, 2004):
- added ability to configure client via sytem-wide console.cf
file and per-user .consolerc - suggested by Erik Sjolund
<erik.sjolund@sbc.su.se>
- added ability to configure client via system-wide console.cf
file and per-user .consolerc - suggested (independently) by
Erik Sjolund <erik.sjolund@sbc.su.se> and Trevor Fiatal
<trevor@fiatal.net>
- fixed bug where break strings were not properly sent -
reported by Tim Small <tim@buttersideup.com>
- fixed bug in config file 'protocol' value handling - reported
@ -738,5 +754,5 @@ before version 6.05:
and enhancements of various types were applied.
#
# $Id: CHANGES,v 1.179 2004/05/26 00:14:07 bryan Exp $
# $Id: CHANGES,v 1.186 2004/05/28 18:01:10 bryan Exp $
#

8
README
View File

@ -16,6 +16,12 @@ Documentation
Downloading
The latest version can be found at http://www.conserver.com/
(US-West).
Mirrors of the site are at:
Australia http://planetmirror.com/pub/conserver/
US-East http://conserver.syr.edu/
Systems Tested
@ -55,5 +61,5 @@ Contributions
http://www.columbia.edu/acis/sy/unixdev/zinc
#
# $Id: README,v 1.22 2003/08/23 19:34:24 bryan Exp $
# $Id: README,v 1.23 2004/05/27 23:39:29 bryan Exp $
#

5
TODO
View File

@ -94,6 +94,9 @@ Bryan Stansell
- strict file permission checks on conserver.passwd/conserver.cf : Erik
Sjolund <erik.sjolund@sbc.su.se>
- netgroup support? : Nikolaos Papavassiliou
<Nikolaos.Papavassiliou@reuters.com>
#
# $Id: TODO,v 1.49 2004/05/25 00:38:11 bryan Exp $
# $Id: TODO,v 1.50 2004/05/28 01:58:43 bryan Exp $
#

42
configure vendored
View File

@ -862,6 +862,7 @@ Optional Packages:
--with-uds[=DIR]
Use Unix domain sockets for client/server
communication [/tmp/conserver]
--with-rpath Use -R as well as -L for libraries
--with-libwrap[=PATH]
Compile in libwrap (tcp_wrappers) support
--with-openssl[=PATH]
@ -1789,6 +1790,29 @@ else
echo "${ECHO_T}no" >&6
fi;
use_dash_r=no
echo "$as_me:$LINENO: checking whether to use -R paths as well as -L" >&5
echo $ECHO_N "checking whether to use -R paths as well as -L... $ECHO_C" >&6
# Check whether --with-rpath or --without-rpath was given.
if test "${with_rpath+set}" = set; then
withval="$with_rpath"
case "$withval" in
yes|no)
echo "$as_me:$LINENO: result: $withval" >&5
echo "${ECHO_T}$withval" >&6
use_dash_r=$withval
;;
*)
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
;;
esac
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi;
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@ -5478,7 +5502,11 @@ if test "${with_libwrap+set}" = set; then
if test "$withval" != "no"; then
if test "$withval" != "yes"; then
WRAPCPPFLAGS="-I$withval/include"
WRAPLDFLAGS="-L$withval/lib"
if test "$use_dash_r" != "yes"; then
WRAPLDFLAGS="-L$withval/lib"
else
WRAPLDFLAGS="-L$withval/lib -R$withval/lib"
fi
else
WRAPCPPFLAGS=""
WRAPLDFLAGS=""
@ -5771,7 +5799,11 @@ if test "${with_openssl+set}" = set; then
if test "$withval" != "no"; then
if test "$withval" != "yes"; then
OPENSSLCPPFLAGS="-I$withval/include"
OPENSSLLDFLAGS="-L$withval/lib"
if test "$use_dash_r" != "yes"; then
OPENSSLLDFLAGS="-L$withval/lib"
else
OPENSSLLDFLAGS="-L$withval/lib -R$withval/lib"
fi
else
OPENSSLCPPFLAGS=""
OPENSSLLDFLAGS=""
@ -6002,7 +6034,11 @@ if test "${with_dmalloc+set}" = set; then
if test "$withval" != "no"; then
if test "$withval" != "yes"; then
DMALLOCCPPFLAGS="-I$withval/include"
DMALLOCLDFLAGS="-L$withval/lib"
if test "$use_dash_r" != "yes"; then
DMALLOCLDFLAGS="-L$withval/lib"
else
DMALLOCLDFLAGS="-L$withval/lib -R$withval/lib"
fi
else
DMALLOCCPPFLAGS=""
DMALLOCLDFLAGS=""

View File

@ -282,6 +282,21 @@ AC_ARG_WITH(uds,
;;
esac],[AC_MSG_RESULT(no)])
use_dash_r=no
AC_MSG_CHECKING(whether to use -R paths as well as -L)
AC_ARG_WITH(rpath,
AS_HELP_STRING([--with-rpath],[Use -R as well as -L for libraries]),
[case "$withval" in
yes|no)
AC_MSG_RESULT($withval)
use_dash_r=$withval
;;
*)
AC_MSG_RESULT(no)
;;
esac],
[AC_MSG_RESULT(no)])
dnl ### Check for compiler et al. ###################################
AC_PROG_CC
AC_PROG_INSTALL
@ -374,7 +389,11 @@ AC_ARG_WITH(libwrap,
[if test "$withval" != "no"; then
if test "$withval" != "yes"; then
WRAPCPPFLAGS="-I$withval/include"
WRAPLDFLAGS="-L$withval/lib"
if test "$use_dash_r" != "yes"; then
WRAPLDFLAGS="-L$withval/lib"
else
WRAPLDFLAGS="-L$withval/lib -R$withval/lib"
fi
else
WRAPCPPFLAGS=""
WRAPLDFLAGS=""
@ -427,7 +446,11 @@ AC_ARG_WITH(openssl,
[if test "$withval" != "no"; then
if test "$withval" != "yes"; then
OPENSSLCPPFLAGS="-I$withval/include"
OPENSSLLDFLAGS="-L$withval/lib"
if test "$use_dash_r" != "yes"; then
OPENSSLLDFLAGS="-L$withval/lib"
else
OPENSSLLDFLAGS="-L$withval/lib -R$withval/lib"
fi
else
OPENSSLCPPFLAGS=""
OPENSSLLDFLAGS=""
@ -467,7 +490,11 @@ AC_ARG_WITH(dmalloc,
[if test "$withval" != "no"; then
if test "$withval" != "yes"; then
DMALLOCCPPFLAGS="-I$withval/include"
DMALLOCLDFLAGS="-L$withval/lib"
if test "$use_dash_r" != "yes"; then
DMALLOCLDFLAGS="-L$withval/lib"
else
DMALLOCLDFLAGS="-L$withval/lib -R$withval/lib"
fi
else
DMALLOCCPPFLAGS=""
DMALLOCLDFLAGS=""

View File

@ -1,5 +1,5 @@
.\" $Id: conserver.cf.man,v 1.63 2004/05/07 03:42:51 bryan Exp $
.TH CONSERVER.CF 5 "2004/05/07" "conserver-8.1.6" "conserver"
.\" $Id: conserver.cf.man,v 1.65 2004/05/27 23:39:06 bryan Exp $
.TH CONSERVER.CF 5 "2004/05/27" "conserver-8.1.7" "conserver"
.SH NAME
conserver.cf \- console configuration file for
.BR conserver (8)
@ -126,9 +126,8 @@ must begin in ``column 0'' - no whitespace is allowed between it and
the start of the physical line.
There is an include file depth limit of 10 to prevent infinite recursion.
.SH BLOCKS
.TP 8
.B access
.RI [ " hostname " | " ipaddr " ]
.TP
\f3access\fP \f2hostname\fP|\f2ipaddr\fP
.br
Define an access block for the host named
.I hostname
@ -139,10 +138,8 @@ all conserver hosts.
Access lists are used in a first match
fashion (top down), so order is important.
.RS
.TP 15
.B admin
.RI "[ [\f3!\fP]" username ,...
| "" ]
.TP
\f3admin\fP [\f3!\fP]\f2username\fP[\f3,\fP...]|\f3""\fP
.br
Define a list of users making up the admin list for the console server.
If
@ -162,38 +159,33 @@ If
.I username
doesn't match a previous group and doesn't begin with `@', the users
will be granted (or denied, if prefixed with `!') access.
If the null string (``""'') is used, any
If the null string (``\f3""\fP'') is used, any
users previously defined for the console servers's admin list are removed.
.TP
.B allowed
.IR hostname ", ..."
\f3allowed\fP \f2hostname\fP[\f3,\fP...]
.br
The list of hostnames are added to the ``allowed'' list, which grants
connections from the hosts but requires username authentication.
.TP
.B include
.I accessgroup
\f3include\fP \f2accessgroup\fP
.br
The access lists defined using the name
.I accessgroup
are applied to the current access block.
The included access block must be previously defined.
.TP
.B rejected
.IR hostname ", ..."
\f3rejected\fP \f2hostname\fP[\f3,\fP...]
.br
The list of hostnames are added to the ``rejected'' list, which rejects
connections from the hosts.
.TP
.B trusted
.IR hostname ", ..."
\f3trusted\fP \f2hostname\fP[\f3,\fP...]
.br
The list of hostnames are added to the ``trusted'' list, which grants
connections from the hosts without username authentication.
.RE
.TP 8
.B break
.I n
.TP
\f3break\fP \f2n\fP
.br
Define a break sequence where 0 <
.I n
@ -202,9 +194,8 @@ Break sequences are accessed via the
.RI ``^El n ''
client escape sequence.
.RS
.TP 15
.B delay
.I n
.TP
\f3delay\fP \f2n\fP
.br
Set the time delay for the
.B \ed
@ -213,8 +204,7 @@ sequence to
milliseconds.
The default time delay is 250ms.
.TP
.B string
.I breakseq
\f3string\fP \f2breakseq\fP
.br
Assign the string
.IR breakseq
@ -223,6 +213,7 @@ to the specified slot
A break sequence is a simple character string with the exception of `\e'
and `^':
.RS
.RS
.sp
.PD 0
.TP 6
@ -280,9 +271,9 @@ is ``and''ed with 0x1f)
.PD
.RE
.RE
.TP 8
.B config
.RI [ " hostname " | " ipaddr " ]
.RE
.TP
\f3config\fP \f2hostname\fP|\f2ipaddr\fP
.br
Define a configuration block for the host named
.I hostname
@ -291,27 +282,21 @@ or using the address
If the value of ``*'' is used, the configuration block will be applied to
all conserver hosts.
.RS
.TP 15
.B defaultaccess
.RB [ " rejected " | " trusted "
.RB | " allowed " ]
.TP
\f3defaultaccess\fP \f3rejected\fP|\f3trusted\fP|\f3allowed\fP
.br
Set the default access permission for all hosts not matched by
an access list (see the
.B \-a
command-line flag).
.TP
.B daemonmode
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3daemonmode\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off
.br
Set whether or not to become a daemon when run (see the
.B \-d
command-line flag).
.TP
.B initdelay
.I number
\f3initdelay\fP \f2number\fP
.br
Set the number of seconds between console initializations.
All consoles with the same
@ -337,54 +322,43 @@ If
.I number
is zero, all consoles are initialized without delay.
.TP
.B logfile
.I filename
\f3logfile\fP \f2filename\fP
.br
Set the logfile to write to when in daemon mode (see the
.B \-L
command-line flag).
.TP
.B passwdfile
.I filename
\f3passwdfile\fP \f2filename\fP
.br
Set the password file location used for authentication (see the
.B \-P
command-line flag).
.TP
.B primaryport
.RI [ " number " | " name " ]
\f3primaryport\fP \f2number\fP|\f2name\fP
.br
Set the port used by the master conserver process (see the
.B \-p
command-line flag).
.TP
.B redirect
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3redirect\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off
.br
Turn redirection on or off (see the
.B \-R
command-line flag).
.TP
.B reinitcheck
.I number
\f3reinitcheck\fP \f2number\fP
.br
Set the number of minutes used between reinitialization checks (see the
.B \-O
command-line flag).
.TP
.B secondaryport
.RI [ " number " | " name " ]
\f3secondaryport\fP \f2number\fP|\f2name\fP
.br
Set the base port number used by child processes (see the
.B \-b
command-line flag).
.TP
.B setproctitle
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3setproctitle\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off
.br
Set whether or not the process title shows master/group functionality
as well as the port number the process is listening on and how many
@ -393,8 +367,7 @@ The operating system must support the
.BR setproctitle ()
call.
.TP
.B sslcredentials
.I filename
\f3sslcredentials\fP \f2filename\fP
.br
Set the
.SM SSL
@ -402,17 +375,13 @@ credentials file location (see the
.B \-c
command-line flag).
.TP
.B sslrequired
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3sslrequired\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off
.br
Set whether or not encryption is required when talking to clients (see the
.B \-E
command-line flag).
.TP
.B unifiedlog
.I filename
\f3unifiedlog\fP \f2filename\fP
.br
Set the location of the unified log to
.IR filename .
@ -420,9 +389,8 @@ See the
.B \-U
command-line flag for details.
.RE
.TP 8
.B console
.I name
.TP
\f3console\fP \f2name\fP
.br
Define a console identified as
.IR name .
@ -430,18 +398,15 @@ The keywords are the same as the
.B default
block with the following addition.
.RS
.TP 15
.B aliases
.RI [ " name" ", ..."
| "" ]
.TP
\f3aliases\fP \f2name\fP[\f3,\fP...]|\f3""\fP
.br
Define a list of console aliases.
If the null string (``""'') is used, any
If the null string (``\f3""\fP'') is used, any
aliases previously defined for the console are removed.
.RE
.TP 8
.B default
.I name
.TP
\f3default\fP \f2name\fP
.br
Define a block of defaults identified as
.IR name .
@ -451,36 +416,27 @@ is ``*'', the automatically applied default block is defined (basically
all consoles have an implicit ``include "*";'' at the beginning
of their definition).
.RS
.TP 15
.B baud
.RB [ " 300 " | " 600 "
.RB | " 1800 " | " 2400 "
.RB | " 4800 " | " 9600 "
.RB | " 19200 " | " 38400 "
.RB | " 57600 " | " 115200 " ]
.TP
\f3baud\fP \f3300\fP|\f3600\fP|\f31800\fP|\f32400\fP|\f34800\fP|\f39600\fP|\f319200\fP|\f338400\fP|\f357600\fP|\f3115200\fP
.br
Assign the baud rate to the console.
Only consoles of type ``device'' will use this value.
.TP
.B break
.I n
\f3break\fP \f2n\fP
.br
Assign the break sequence
.I n
as the default for the console, which is used by
the ``^Ecl0'' client escape sequence.
.TP
.B device
.I filename
\f3device\fP \f2filename\fP
.br
Assign the serial device
.I filename
as the access to the console.
Only consoles of type ``device'' will use this value.
.TP
.B devicesubst
[\f2c\fP=\f2t\fP[\f2n\fP]\f2f\fP[,...]
| "" ]
\f3devicesubst\fP \f2c\fP\f3=\fP\f2t\fP[\f2n\fP]\f2f\fP[\f3,\fP...]|\f3""\fP
.br
Perform character substitutions on the
.B device
@ -546,25 +502,21 @@ begins with a 0, and space characters otherwise.
.I f
must be either `d', `x' or `X', specifying a decimal, lower-case
hexadecimal, or an uppercase hexadecimal conversion.
If the null string (``""'') is used, no replacements will be done.
If the null string (``\f3""\fP'') is used, no replacements will be done.
.TP
.B exec
.RI [ " command "
| "" ]
\f3exec\fP \f2command|\f3""\fP
.br
Assign the string
.I command
as the command to access the console.
Conserver will run the command by
invoking ``/bin/sh -ce "\f2command\fP"''.
If the null string (``""'') is used or no
If the null string (``\f3""\fP'') is used or no
.B exec
keyword is specified, conserver will use the command ``/bin/sh -i''.
Only consoles of type ``exec'' will use this value.
.TP
.B execsubst
[\f2c\fP=\f2t\fP[\f2n\fP]\f2f\fP[,...]
| "" ]
\f3execsubst\fP \f2c\fP\f3=\fP\f2t\fP[\f2n\fP]\f2f\fP[\f3,\fP...]|\f3""\fP
.br
Perform character substitutions on the
.B exec
@ -572,10 +524,9 @@ value.
See the
.B devicesubst
option for an explanation of the format string.
If the null string (``""'') is used, no replacements will be done.
If the null string (``\f3""\fP'') is used, no replacements will be done.
.TP
.B host
.I hostname
\f3host\fP \f2hostname\fP
.br
Assign
.I hostname
@ -591,16 +542,14 @@ or
.B initsubst
keywords are used in any console type, this value is used.
.TP
.B idlestring
.RI [ " string "
| "" ]
\f3idlestring\fP \f2string\fP|\f3""\fP
.br
Assign the
.I string
that is sent to the console once the console is idle for an
.I idletimeout
amount of time.
If the null string (``""'') is used, the string is unset and
If the null string (``\f3""\fP'') is used, the string is unset and
the default is used.
The string is interpreted just as a
.B break
@ -610,8 +559,7 @@ configuration items for details) where all delays specified (via ``\ed'')
use the default delay time.
The default string is ``\en''.
.TP
.B idletimeout
\f2number\fP[\f3s\fP|\f3m\fP|\f3h\fP]
\f3idletimeout\fP \f2number\fP[\f3s\fP|\f3m\fP|\f3h\fP]
.br
Set the idle timeout of the console to
.I number
@ -621,17 +569,14 @@ If an `s', `m', or `h' is used after
the specified time is interpreted as seconds, minutes, or hours.
Set the timeout to zero to disable the idle timeout (the default).
.TP
.B include
.I default
\f3include\fP \f2default\fP
.br
The default block defined using the name
.I default
is applied to the current console or default block.
The included default block must be previously defined.
.TP
.B initcmd
.RI [ " command "
| "" ]
\f3initcmd\fP \f3command\fP|\f3""\fP
.br
Invoke
.I command
@ -641,12 +586,10 @@ to stdin, stdout, and stderr of
The
.I command
is passed as an argument to ``/bin/sh -ce''.
If the null string (``""'') is used, the command is unset and
If the null string (``\f3""\fP'') is used, the command is unset and
nothing is invoked.
.TP
.B initsubst
[\f2c\fP=\f2t\fP[\f2n\fP]\f2f\fP[,...]
| "" ]
\f3initsubst\fP \f2c\fP\f3=\fP\f2t\fP[\f2n\fP]\f2f\fP[\f3,\fP...]|\f3""\fP
.br
Perform character substitutions on the
.B initcmd
@ -654,11 +597,9 @@ value.
See the
.B devicesubst
option for an explanation of the format string.
If the null string (``""'') is used, no replacements will be done.
If the null string (``\f3""\fP'') is used, no replacements will be done.
.TP
.B logfile
.RI [ " filename "
| "" ]
\f3logfile\fP \f2filename\fP|\f3""\fP
.br
Assign the logfile specified by
.I filename
@ -666,11 +607,10 @@ to the console.
Any occurrence of ``&'' in
.I filename
will be replaced with the name of the console.
If the null string (``""'') is used, the logfile name is unset and
If the null string (``\f3""\fP'') is used, the logfile name is unset and
no logging will occur.
.TP
.B logfilemax
\f2number\fP[\f3k\fP|\f3m\fP]
\f3logfilemax\fP \f2number\fP[\f3k\fP|\f3m\fP]
.br
Enable automatic rotation of
.B logfile
@ -703,8 +643,7 @@ logfile is read from the end of the file.
All data past the first newline is moved (not copied) to the new logfile
so that a replay of the console works and starts on a line boundary.
.TP
.B master
.RI [ " hostname " | " ipaddr " ]
\f3master\fP \f2hostname\fP|\f3ipaddr\fP
.br
Define which conserver host manages the console.
The host may be specified by
@ -712,19 +651,15 @@ The host may be specified by
or using the address
.IR ipaddr .
.TP
.B motd
.RI [ " message "
| "" ]
\f3motd\fP \f2message\fP|\f3""\fP
.br
Set the "message of the day" for the console to
.IR message ,
which gets displayed when a client attaches to the console.
If the null string (``""'') is used, the MOTD is unset and
If the null string (``\f3""\fP'') is used, the MOTD is unset and
no message will occur.
.TP
.B options
.RI [ " option" ,...
| "" ]
\f3options\fP [\f3!\fP]option[\f3,\fP...]|\f3""\fP
.br
You can negate the option by prefixing it with a
.RB `` ! ''
@ -839,16 +774,12 @@ Default is
.PD
.RE
.TP
.B parity
.RB [ " even " | " mark "
.RB | " none " | " odd "
.RB | " space " ]
\f3parity\fP \f3even\fP|\f3mark\fP|\f3none\fP|\f3odd\fP|\f3space\fP
.br
Set the parity option for the console.
Only consoles of type ``device'' will use this value.
.TP
.B port
.RI [ " number " | " name " ]
\f3port\fP \f2number\fP|\f2name\fP
.br
Set the port used to access the console.
The port may be specified as a
@ -890,8 +821,7 @@ or
.B initsubst
keywords are used in any console type, this value is used.
.TP
.B portbase
.I number
\f3portbase\fP \f2number\fP
.br
Set the base value for the port calculation formula.
.I number
@ -901,8 +831,7 @@ See
.B port
for the details of the formula.
.TP
.B portinc
.I number
\f3portinc\fP \f2number\fP
.br
Set the increment value for the port calculation formula.
.I number
@ -912,8 +841,7 @@ See
.B port
for the details of the formula.
.TP
.B protocol
.RB [ " telnet " | " raw " ]
\f3protocol\fP \f3telnet\fP|\f3raw\fP
.br
Set the protocol used to send and receive data from the console.
If
@ -927,9 +855,7 @@ The
console option still applies when data is read by the server, and if enabled,
can impact the encapsulation process.
.TP
.B ro
.RI "[ [\f3!\fP]" username ,...
| "" ]
\f3ro\fP [\f3!\fP]\f2username\fP[\f3,\fP...]|\f3""\fP
.br
Define a list of users making up the read-only access list
for the console.
@ -950,12 +876,10 @@ If
.I username
doesn't match a previous group and doesn't begin with `@', the users
will be granted (or denied, if prefixed with `!') read-only access.
If the null string (``""'') is used, any
If the null string (``\f3""\fP'') is used, any
users previously defined for the console's read-only list are removed.
.TP
.B rw
.RI "[ [\f3!\fP]" username ,...
| "" ]
\f3rw\fP [\f3!\fP]\f2username\fP[\f3,\fP...]|\f3""\fP
.br
Define a list of users making up the read-write access list
for the console.
@ -976,13 +900,10 @@ If
.I username
doesn't match a previous group and doesn't begin with `@', the users
will be granted (or denied, if prefixed with `!') read-write access.
If the null string (``""'') is used, any
If the null string (``\f3""\fP'') is used, any
users previously defined for the console's read-write list are removed.
.TP
.B timestamp
[
[\f2number\fP[\f3m\fP|\f3h\fP|\f3d\fP|\f3l\fP]][\f3a\fP][\f3b\fP]
| "" ]
\f3timestamp\fP [\f2number\fP[\f3m\fP|\f3h\fP|\f3d\fP|\f3l\fP]][\f3a\fP][\f3b\fP]|\f3""\fP
.br
Specifies the time between timestamps applied to the console
log file and whether to log read/write connection actions.
@ -1011,9 +932,7 @@ A
.RB ` b '
can be specified to add logging of break sequences sent to the console.
.TP
.B type
.RB [ " device " | " exec "
.RB | " host " ]
\f3type\fP \f3device\fP|\f3exec\fP|\f3host\fP
.br
Set the type of console.
The type
@ -1033,17 +952,14 @@ and
.B port
options).
.RE
.TP 8
.B group
.I name
.TP
\f3group\fP \f2name\fP
.br
Define a user group identified as
.I name
.RS
.TP 15
.B users
.RI "[ [\f3!\fP]" username ,...
| "" ]
.TP
\f3users\fP [\f3!\fP]\f2username\fP[\f3,\fP...]|\f3""\fP
.br
Define a list of users making up the group
.IR name .
@ -1064,7 +980,7 @@ If
.I username
doesn't match a previous group and doesn't begin with `@', the users
will be recorded with (or without, if prefixed with `!') access.
If the null string (``""'') is used, any
If the null string (``\f3""\fP'') is used, any
users previously defined for this group are removed.
.RE
.SH AUTHORS

View File

@ -1,5 +1,5 @@
.\" $Id: conserver.passwd.man,v 1.10 2004/01/08 16:12:33 bryan Exp $
.TH CONSERVER.PASSWD 5 "2004/01/08" "conserver-8.1.6" "conserver"
.TH CONSERVER.PASSWD 5 "2004/01/08" "conserver-8.1.7" "conserver"
.SH NAME
conserver.passwd \- user access information for
.BR conserver (8)

View File

@ -36,7 +36,8 @@
<TD colspan="2" align="center">Please pick your closest
mirror: &nbsp;&nbsp;<A href=
"http://planetmirror.com/pub/conserver/">Australia</A>
&nbsp;&nbsp;<A href="http://www.conserver.com/">US
&nbsp;&nbsp;<A href="http://conserver.syr.edu/">US-East</A>
&nbsp;&nbsp;<A href="http://www.conserver.com/">US-West
(Primary)</A><BR>
<BR>
</TD>
@ -181,11 +182,11 @@
<H3>Downloading</H3>
<P>The current version, released on May 25, 2004, is <A
href="8.1.6.tar.gz">8.1.6.tar.gz</A>. You can get it via
<P>The current version, released on May 28, 2004, is <A
href="8.1.7.tar.gz">8.1.7.tar.gz</A>. You can get it via
<A href=
"ftp://ftp.conserver.com/conserver/8.1.6.tar.gz">FTP</A>
or <A href="8.1.6.tar.gz">HTTP</A>. See the <A href=
"ftp://ftp.conserver.com/conserver/8.1.7.tar.gz">FTP</A>
or <A href="8.1.7.tar.gz">HTTP</A>. See the <A href=
"CHANGES">CHANGES</A> file for information on the latest
updates.</P>

View File

@ -1,5 +1,5 @@
/*
* $Id: client.c,v 5.83 2004/04/13 18:12:00 bryan Exp $
* $Id: client.c,v 5.84 2004/05/28 16:39:51 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -514,6 +514,7 @@ ClientAccessOk(pCL)
# if defined(USE_LIBWRAP)
{
struct request_info request;
CONDDEBUG((1, "ClientAccessOk(): doing tcpwrappers check"));
request_init(&request, RQ_DAEMON, progname, RQ_FILE, cfd, 0);
fromhost(&request);
if (!hosts_access(&request)) {

View File

@ -1,6 +1,6 @@
.\" @(#)conserver.8 01/06/91 OSU CIS; Thomas A. Fine
.\" $Id: conserver.man,v 1.47 2004/05/21 04:15:17 bryan Exp $
.TH CONSERVER 8 "2004/05/21" "conserver-8.1.6" "conserver"
.\" $Id: conserver.man,v 1.48 2004/05/28 02:02:36 bryan Exp $
.TH CONSERVER 8 "2004/05/28" "conserver-8.1.7" "conserver"
.SH NAME
conserver \- console server daemon
.SH SYNOPSIS
@ -448,7 +448,9 @@ any interaction with the server is done with the default escape sequence.
This is, by no means, a complete description of the entire client/server
interaction.
It is, however, a brief explanation in order to give a idea of
what the program does.
what the program does. See the
.B \s-1PROTOCOLS\s0
file in the distribution for further details.
.SH FILES
.PP
The following default file locations may be overridden

View File

@ -1,5 +1,5 @@
/*
* $Id: convert.c,v 1.9 2004/05/21 04:15:17 bryan Exp $
* $Id: convert.c,v 1.10 2004/05/28 01:08:28 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -41,6 +41,12 @@
#include <master.h>
#include <main.h>
#if defined(USE_LIBWRAP)
/* we don't use it...but we link to it */
int allow_severity;
int deny_severity;
#endif
SECTION sections[] = {
{(char *)0, (void *)0, (void *)0, (void *)0, (void *)0}

View File

@ -1,5 +1,5 @@
/*
* $Id: group.c,v 5.301 2004/05/25 00:38:15 bryan Exp $
* $Id: group.c,v 5.302 2004/05/27 23:40:35 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -55,6 +55,7 @@
#include <compat.h>
#include <pwd.h>
#include <grp.h>
#if PROTOTYPES
#include <stdarg.h>
#else
@ -393,11 +394,40 @@ ConsentFindUser(pCU, id)
char *id;
#endif
{
short close = 0;
struct group *g = (struct group *)0;
struct passwd *pwd = (struct passwd *)0;
for (; pCU != (CONSENTUSERS *)0; pCU = pCU->next) {
if (strcmp(pCU->user->name, id) == 0) {
return pCU;
if (pCU->user->name[0] == '@' && pCU->user->name[1] != '\000') {
if (close == 0) {
close = 1;
/* try to grab the primary group */
pwd = getpwnam(id);
}
/* grab the group info */
if ((g = getgrnam(pCU->user->name + 1)) == (struct group *)0) {
Error("ConsentFindUser(): unknown group name `%s'",
pCU->user->name + 1);
} else if (pwd != (struct passwd *)0 &&
pwd->pw_gid == g->gr_gid) {
goto donehunting;
} else if (g->gr_mem != (char **)0) {
char **m;
for (m = g->gr_mem; *m != (char *)0; m++)
if (strcmp(*m, id) == 0)
goto donehunting;
}
} else if (strcmp(pCU->user->name, id) == 0) {
goto donehunting;
}
}
donehunting:
if (close) {
endgrent();
endpwent();
}
return pCU;
}

View File

@ -1,5 +1,5 @@
/*
* $Id: readcfg.c,v 5.176 2004/05/25 00:38:15 bryan Exp $
* $Id: readcfg.c,v 5.177 2004/05/27 23:40:36 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -25,8 +25,6 @@
#include <compat.h>
#include <grp.h>
#include <cutil.h>
#include <consent.h>
#include <client.h>
@ -148,17 +146,30 @@ ConsentAddUser(ppCU, id, not)
#endif
{
CONSENTUSERS *u = (CONSENTUSERS *)0;
CONSENTUSERS *p = (CONSENTUSERS *)0;
if ((u = ConsentFindUser(*ppCU, id)) == (CONSENTUSERS *)0) {
if ((u = (CONSENTUSERS *)calloc(1, sizeof(CONSENTUSERS)))
== (CONSENTUSERS *)0)
OutOfMem();
u->user = AddUserList(id);
u->not = not;
u->next = *ppCU;
*ppCU = u;
} else
u->not = not;
for (u = *ppCU; u != (CONSENTUSERS *)0; u = u->next) {
if (strcmp(u->user->name, id) == 0) {
u->not = not;
/* at head of list already? */
if (p != (CONSENTUSERS *)0) {
/* move it */
p->next = u->next;
u->next = *ppCU;
*ppCU = u;
}
return u;
}
p = u;
}
if ((u = (CONSENTUSERS *)calloc(1, sizeof(CONSENTUSERS)))
== (CONSENTUSERS *)0)
OutOfMem();
u->user = AddUserList(id);
u->not = not;
u->next = *ppCU;
*ppCU = u;
return u;
}
@ -284,15 +295,9 @@ BreakItemDelay(id)
}
/* 'group' handling */
typedef struct parserGroupUsers {
NAMES *user;
short not;
struct parserGroupUsers *next;
} PARSERGROUPUSERS;
typedef struct parserGroup {
STRING *name;
PARSERGROUPUSERS *users;
CONSENTUSERS *users;
struct parserGroup *next;
} PARSERGROUP;
@ -308,11 +313,12 @@ DestroyParserGroup(pg)
#endif
{
PARSERGROUP **ppg = &parserGroups;
PARSERGROUPUSERS *u = (PARSERGROUPUSERS *)0;
char *m = (char *)0;
if (pg == (PARSERGROUP *)0)
return;
CONDDEBUG((2, "DestroyParserGroup(): %s", pg->name->string));
while (*ppg != (PARSERGROUP *)0) {
if (*ppg == pg) {
break;
@ -321,20 +327,14 @@ DestroyParserGroup(pg)
}
}
BuildTmpString((char *)0);
m = BuildTmpString(pg->name->string);
if (*ppg != (PARSERGROUP *)0)
*ppg = pg->next;
DestroyString(pg->name);
for (u = pg->users; u != (PARSERGROUPUSERS *)0;) {
PARSERGROUPUSERS *n = u->next;
BuildTmpStringChar(',');
m = BuildTmpString(u->user->name);
free(u);
u = n;
}
DestroyConsentUsers(&(pg->users));
free(pg);
CONDDEBUG((2, "DestroyParserGroup(): %s", m));
}
PARSERGROUP *
@ -429,11 +429,11 @@ GroupDestroy()
PARSERGROUP *pg;
NAMES *u;
for (pg = parserGroups; pg != (PARSERGROUP *)0; pg = pg->next) {
PARSERGROUPUSERS *pgu;
CONSENTUSERS *pcu;
Msg("Group = %s", pg->name->string);
for (pgu = pg->users; pgu != (PARSERGROUPUSERS *)0;
pgu = pgu->next) {
Msg(" User = %s", pgu->user->name);
for (pcu = pg->users; pcu != (CONSENTUSERS *)0;
pcu = pcu->next) {
Msg(" User = %s", pcu->user->name);
}
}
Msg("UserList...");
@ -448,25 +448,7 @@ GroupDestroy()
parserGroups = parserGroupTemp = (PARSERGROUP *)0;
}
PARSERGROUPUSERS *
#if PROTOTYPES
GroupFindUser(PARSERGROUP *pg, char *id)
#else
GroupFindUser(pg, id)
PARSERGROUP *pg;
char *id;
#endif
{
PARSERGROUPUSERS *pgu;
for (pgu = pg->users; pgu != (PARSERGROUPUSERS *)0; pgu = pgu->next) {
if (strcmp(pgu->user->name, id) == 0) {
return pgu;
}
}
return pgu;
}
PARSERGROUPUSERS *
CONSENTUSERS *
#if PROTOTYPES
GroupAddUser(PARSERGROUP *pg, char *id, short not)
#else
@ -476,21 +458,28 @@ GroupAddUser(pg, id, not)
short not;
#endif
{
PARSERGROUPUSERS *pgu = (PARSERGROUPUSERS *)0;
if ((pgu = GroupFindUser(pg, id)) == (PARSERGROUPUSERS *)0) {
if ((pgu = (PARSERGROUPUSERS *)calloc(1, sizeof(PARSERGROUPUSERS)))
== (PARSERGROUPUSERS *)0)
OutOfMem();
pgu->user = AddUserList(id);
pgu->next = pg->users;
pgu->not = not;
pg->users = pgu;
} else
pgu->not = not;
return pgu;
return ConsentAddUser(&(pg->users), id, not);
}
void
#if PROTOTYPES
CopyConsentUserList(CONSENTUSERS *s, CONSENTUSERS **d)
#else
CopyConsentUserList(CONSENTUSERS *s, CONSENTUSERS **d)
CONSENTUSERS *s;
CONSENTUSERS **d;
#endif
{
/* we have to add things backwards, since it's an ordered list */
if (s == (CONSENTUSERS *)0 || d == (CONSENTUSERS **)0)
return;
CopyConsentUserList(s->next, d);
ConsentAddUser(d, s->user->name, s->not);
}
void
#if PROTOTYPES
GroupItemUsers(char *id)
@ -505,12 +494,7 @@ GroupItemUsers(id)
CONDDEBUG((1, "GroupItemUsers(%s) [%s:%d]", id, file, line));
if ((id == (char *)0) || (*id == '\000')) {
PARSERGROUPUSERS *u;
for (u = parserGroupTemp->users; u != (PARSERGROUPUSERS *)0;) {
PARSERGROUPUSERS *n = u->next;
free(u);
u = n;
}
DestroyConsentUsers(&(parserGroupTemp->users));
return;
}
@ -522,28 +506,10 @@ GroupItemUsers(id)
not = 1;
} else
not = 0;
if ((pg = GroupFind(token)) == (PARSERGROUP *)0) {
if (token[0] == '@' && token[1] != '\000') {
struct group *g;
if ((g = getgrnam(token + 1)) == (struct group *)0) {
if (isMaster)
Error("unknown group name `%s': %s [%s:%d]",
token + 1, strerror(errno), file, line);
} else if (g->gr_mem != (char **)0) {
char **m;
for (m = g->gr_mem; *m != (char *)0; m++)
GroupAddUser(parserGroupTemp, *m, not);
}
} else
GroupAddUser(parserGroupTemp, token, not);
} else {
PARSERGROUPUSERS *pgu;
for (pgu = pg->users; pgu != (PARSERGROUPUSERS *)0;
pgu = pgu->next) {
GroupAddUser(parserGroupTemp, pgu->user->name,
(not ? !pgu->not : pgu->not));
}
}
if ((pg = GroupFind(token)) == (PARSERGROUP *)0)
GroupAddUser(parserGroupTemp, token, not);
else
CopyConsentUserList(pg->users, &(parserGroupTemp->users));
}
}
@ -773,18 +739,8 @@ ApplyDefault(d, c)
if ((c->idlestring = StrDup(d->idlestring)) == (char *)0)
OutOfMem();
}
if (d->ro != (CONSENTUSERS *)0) {
CONSENTUSERS *u;
for (u = d->ro; u != (CONSENTUSERS *)0; u = u->next) {
ConsentAddUser(&(c->ro), u->user->name, u->not);
}
}
if (d->rw != (CONSENTUSERS *)0) {
CONSENTUSERS *u;
for (u = d->rw; u != (CONSENTUSERS *)0; u = u->next) {
ConsentAddUser(&(c->rw), u->user->name, u->not);
}
}
CopyConsentUserList(d->ro, &(c->ro));
CopyConsentUserList(d->rw, &(c->rw));
}
void
@ -1772,28 +1728,10 @@ ProcessRoRw(ppCU, id)
not = 1;
} else
not = 0;
if ((pg = GroupFind(token)) == (PARSERGROUP *)0) {
if (token[0] == '@' && token[1] != '\000') {
struct group *g;
if ((g = getgrnam(token + 1)) == (struct group *)0) {
if (isMaster)
Error("unknown group name `%s': %s [%s:%d]",
token + 1, strerror(errno), file, line);
} else if (g->gr_mem != (char **)0) {
char **m;
for (m = g->gr_mem; *m != (char *)0; m++)
ConsentAddUser(ppCU, *m, not);
}
} else
ConsentAddUser(ppCU, token, not);
} else {
PARSERGROUPUSERS *pgu;
for (pgu = pg->users; pgu != (PARSERGROUPUSERS *)0;
pgu = pgu->next) {
ConsentAddUser(ppCU, pgu->user->name,
(not ? !pgu->not : pgu->not));
}
}
if ((pg = GroupFind(token)) == (PARSERGROUP *)0)
ConsentAddUser(ppCU, token, not);
else
CopyConsentUserList(pg->users, ppCU);
}
}
@ -2275,7 +2213,6 @@ ConsoleAdd(c)
CONSENT *pCEmatch = (CONSENT *)0;
GRPENT *pGEmatch = (GRPENT *)0, *pGEtmp = (GRPENT *)0;
CONSCLIENT *pCLtmp = (CONSCLIENT *)0;
CONSENTUSERS *u;
/* check for remote consoles */
if (!IsMe(c->master)) {
@ -2688,12 +2625,8 @@ ConsoleAdd(c)
DestroyConsentUsers(&(pCEmatch->ro));
DestroyConsentUsers(&(pCEmatch->rw));
/* now copy over the new stuff */
for (u = c->ro; u != (CONSENTUSERS *)0; u = u->next) {
ConsentAddUser(&(pCEmatch->ro), u->user->name, u->not);
}
for (u = c->rw; u != (CONSENTUSERS *)0; u = u->next) {
ConsentAddUser(&(pCEmatch->rw), u->user->name, u->not);
}
CopyConsentUserList(c->ro, &(pCEmatch->ro));
CopyConsentUserList(c->rw, &(pCEmatch->rw));
/* the code above shouldn't touch any of the "runtime" members
* 'cause the ConsDown() code needs to be able to rely on those
@ -3658,13 +3591,8 @@ AccessItemInclude(id)
for (a = pa->access; a != (ACCESS *)0; a = a->pACnext) {
AccessAddACL(parserAccessTemp, a);
}
if (pa->admin != (CONSENTUSERS *)0) {
CONSENTUSERS *u;
for (u = pa->admin; u != (CONSENTUSERS *)0; u = u->next) {
ConsentAddUser(&(parserAccessTemp->admin),
u->user->name, u->not);
}
}
if (pa->admin != (CONSENTUSERS *)0)
CopyConsentUserList(pa->admin, &(parserAccessTemp->admin));
}
}
}

View File

@ -1,5 +1,5 @@
/*
* $Id: version.h,v 1.62 2004/05/23 16:44:45 bryan Exp $
* $Id: version.h,v 1.63 2004/05/28 17:59:37 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -14,4 +14,4 @@
@(#) Copyright 2000 conserver.com.\n\
All rights reserved.\n"
#define THIS_VERSION "conserver.com version 8.1.6"
#define THIS_VERSION "conserver.com version 8.1.7"

View File

@ -1,5 +1,5 @@
.\" $Id: console.man,v 1.51 2004/05/25 00:38:15 bryan Exp $
.TH CONSOLE 1 "2004/05/25" "conserver-8.1.6" "conserver"
.\" $Id: console.man,v 1.54 2004/05/28 00:02:16 bryan Exp $
.TH CONSOLE 1 "2004/05/28" "conserver-8.1.7" "conserver"
.SH NAME
console \- console server client program
.SH SYNOPSIS
@ -441,27 +441,24 @@ The configuration file is read using the same parser as
and you should check that manpage for parser details.
.B Console
recognizes the following configuration blocks.
.TP 8
.B config
.RI [ " hostname " | " ipaddr " ]
.TP
\f3config\fP \f2hostname\fP|\f2ipaddr\fP
.br
Define a configuration block for the host named
Define a configuration block for the client host named
.I hostname
or using the address
.IR ipaddr .
If the value of ``*'' is used, the configuration block will be applied to
all hosts.
all client hosts.
.RS
.TP 15
.B escape
.I esc
.TP
\f3escape\fP \f2esc\fP
.br
Set the escape sequence (see the
.B \-e
command-line flag).
.TP
.B master
.I master
\f3master\fP \f2master\fP
.br
Set the default master to
.I master
@ -469,8 +466,7 @@ Set the default master to
.B \-M
command-line flag).
.TP
.B port
.I port
\f3port\fP \f2port\fP
.br
Set the default port to
.I port
@ -478,8 +474,7 @@ Set the default port to
.B \-p
command-line flag).
.TP
.B sslcredentials
.I filename
\f3sslcredentials\fP \f2filename\fP
.br
Set the
.SM SSL
@ -487,36 +482,26 @@ credentials file location (see the
.B \-c
command-line flag).
.TP
.B sslenabled
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3sslenabled\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off\fP
.br
Set whether or not encryption is attempted when talking to servers (see the
.B \-E
command-line flag).
.TP
.B sslrequired
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3sslrequired\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off\fP
.br
Set whether or not encryption is required when talking to servers (see the
.B \-U
command-line flag).
.TP
.B striphigh
.RB [ " yes " | " true "
.RB | " on " | " no "
.RB | " false " | " off " ]
\f3striphigh\fP \f3yes\fP|\f3true\fP|\f3on\fP|\f3no\fP|\f3false\fP|\f3off\fP
.br
Set whether or not to strip the high bit off all data received
(see the
.B \-7
command-line flag).
.TP
.B username
.I user
\f3username\fP \f2user\fP
.br
Set the username passed to the server to
.I user
@ -524,19 +509,16 @@ Set the username passed to the server to
.B \-l
command-line flag).
.RE
.TP 8
.B terminal
.I type
.TP
\f3terminal\fP \f2type\fP
.br
Define a configuration block when using a terminal of type
.IR type .
If the value of ``*'' is used, the configuration block will be applied to
all terminal types.
.RS
.TP 15
.B attach
.RI [ " string "
| "" ]
.TP
\f3attach\fP \f2string\fP|\f3""\fP
.br
Set a
.I string
@ -546,7 +528,7 @@ Character substitions will be performed based on the
value and occur
.I before
interpretation of the special characters below.
If the null string (``""'') is used, no string will be printed.
If the null string (``\f3""\fP'') is used, no string will be printed.
.I string
is a simple character string with the exception of `\e'
and `^':
@ -619,16 +601,14 @@ terminal xterm {
.ft
.RE
.TP
.B attachsubst
[\f2c\fP=\f2t\fP[\f2n\fP]\f2f\fP[,...]
| "" ]
\f3attachsubst\fP \f2c\fP\f3=\fP\f2t\fP[\f2n\fP]\f2f\fP[\f3,\fP...]|\f3""\fP
.br
Perform character substitutions on the
.B attach
value.
A series of replacements can be defined by specifying a
comma-separated list of
\f2c\fP=\f2t\fP[\f2n\fP]\f2f\fP
\f2c\fP\f3=\fP\f2t\fP[\f2n\fP]\f2f\fP
sequences where
.I c
is any printable character,
@ -680,11 +660,9 @@ begins with a 0, and space characters otherwise.
.I f
must be either `d', `x' or `X', specifying a decimal, lower-case
hexadecimal, or an uppercase hexadecimal conversion.
If the null string (``""'') is used, no replacements will be done.
.TP 15
.B detach
.RI [ " string "
| "" ]
If the null string (``\f3""\fP'') is used, no replacements will be done.
.TP
\f3detach\fP \f2string\fP|\f3""\fP
.br
Set a
.I string
@ -696,11 +674,9 @@ See the
.B attach
option for an explanation of
.IR string .
If the null string (``""'') is used, no string will be printed.
If the null string (``\f3""\fP'') is used, no string will be printed.
.TP
.B detachsubst
[\f2c\fP=\f2t\fP[\f2n\fP]\f2f\fP[,...]
| "" ]
\f3detachsubst\fP \f2c\fP\f3=\fP\f2t\fP[\f2n\fP]\f2f\fP[\f3,\fP...]|\f3""\fP
.br
Perform character substitutions on the
.B detach
@ -834,7 +810,7 @@ specify three octal digits)
If any other character is hit after the escape sequence, all three characters
will be discarded.
Note that a line break or a down command
can only be sent from a full two-way attachment.
can only be sent from a read-write connection.
To send the escape sequence through the connection one must redefine
the outer escape sequence, or use
.BI ^Ec\e ooo
@ -845,16 +821,16 @@ In the
.B \-u
output, the login ``<none>'' indicates no one is
viewing that console, and the login ``<spies>'' indicates that
no one has a full two-way attachment.
no one has a read-write connection (only read-only).
.PP
When running a local command via
.RB `` ^Ec| '',
you can type
.B ^C
.RB ` ^C '
to send the command a SIGHUP,
.B ^\e
.RB ` ^\e '
to send the command a SIGKILL, and
.B o
.RB ` o '
to toggle the display of the console data.
.SH EXAMPLES
.TP 15
@ -920,7 +896,7 @@ to see the defaults set at compile time.
.B /etc/console.cf
system-wide configuration file
.TP
.B $HOME/.consolerc
.B \s-1$HOME\s0/.consolerc
per-user configuration file
.PD
.SH BUGS

View File

@ -4,7 +4,7 @@
#
%define pkg conserver
%define ver 8.1.6
%define ver 8.1.7
# define the name of the machine on which the main conserver
# daemon will be running if you don't want to use the default

View File

@ -1,7 +1,7 @@
PKG="conserver"
NAME="Console server and client"
CATEGORY="system"
VERSION="8.1.6"
VERSION="8.1.7"
DESC="Console server and client"
CLASSES=none
ARCH=sparc