From c0f8de9c243f1d9d21a46ed727341fe20c6bbb86 Mon Sep 17 00:00:00 2001 From: Bryan Stansell Date: Fri, 28 May 2004 11:03:33 -0700 Subject: [PATCH] Imported from conserver-8.1.7.tar.gz --- CHANGES | 24 ++- README | 8 +- TODO | 5 +- configure | 42 ++++- configure.in | 33 +++- conserver.cf/conserver.cf.man | 250 ++++++++++-------------------- conserver.cf/conserver.passwd.man | 2 +- conserver.html | 11 +- conserver/client.c | 3 +- conserver/conserver.man | 8 +- conserver/convert.c | 8 +- conserver/group.c | 36 ++++- conserver/readcfg.c | 216 +++++++++----------------- conserver/version.h | 4 +- console/console.man | 90 ++++------- contrib/redhat-rpm/conserver.spec | 2 +- contrib/solaris-package/pkginfo | 2 +- 17 files changed, 346 insertions(+), 398 deletions(-) diff --git a/CHANGES b/CHANGES index 7f4004e..7aa16bd 100644 --- a/CHANGES +++ b/CHANGES @@ -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 + - added an east coast mirror! http://conserver.syr.edu/ - + thanks to Christopher T. Beers + - primary group of users not included in '@group' syntax - + reported by Phil Dibowitz + - 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 + + - added --with-rpath option - suggested by Phil Dibowitz + + 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 - + - added ability to configure client via system-wide console.cf + file and per-user .consolerc - suggested (independently) by + Erik Sjolund and Trevor Fiatal + - fixed bug where break strings were not properly sent - reported by Tim Small - 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 $ # diff --git a/README b/README index 3366b31..f7b911f 100644 --- a/README +++ b/README @@ -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 $ # diff --git a/TODO b/TODO index c4e09b9..0b33aa5 100644 --- a/TODO +++ b/TODO @@ -94,6 +94,9 @@ Bryan Stansell - strict file permission checks on conserver.passwd/conserver.cf : Erik Sjolund +- netgroup support? : Nikolaos Papavassiliou + + # -# $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 $ # diff --git a/configure b/configure index e0a6369..9ca2c53 100755 --- a/configure +++ b/configure @@ -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="" diff --git a/configure.in b/configure.in index d05a2f1..8b15dde 100644 --- a/configure.in +++ b/configure.in @@ -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="" diff --git a/conserver.cf/conserver.cf.man b/conserver.cf/conserver.cf.man index 2090132..39cd352 100644 --- a/conserver.cf/conserver.cf.man +++ b/conserver.cf/conserver.cf.man @@ -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 diff --git a/conserver.cf/conserver.passwd.man b/conserver.cf/conserver.passwd.man index ee294b1..4a9b5ec 100644 --- a/conserver.cf/conserver.passwd.man +++ b/conserver.cf/conserver.passwd.man @@ -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) diff --git a/conserver.html b/conserver.html index f6e0d60..279f66d 100644 --- a/conserver.html +++ b/conserver.html @@ -36,7 +36,8 @@ Please pick your closest mirror:   Australia -   US +   US-East +   US-West (Primary)

@@ -181,11 +182,11 @@

Downloading

-

The current version, released on May 25, 2004, is 8.1.6.tar.gz. You can get it via +

The current version, released on May 28, 2004, is 8.1.7.tar.gz. You can get it via FTP - or HTTP. See the FTP + or HTTP. See the CHANGES file for information on the latest updates.

diff --git a/conserver/client.c b/conserver/client.c index 536e707..c72b5c2 100644 --- a/conserver/client.c +++ b/conserver/client.c @@ -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)) { diff --git a/conserver/conserver.man b/conserver/conserver.man index fca4ad3..d246623 100644 --- a/conserver/conserver.man +++ b/conserver/conserver.man @@ -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 diff --git a/conserver/convert.c b/conserver/convert.c index ae275d7..6befa53 100644 --- a/conserver/convert.c +++ b/conserver/convert.c @@ -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 #include +#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} diff --git a/conserver/group.c b/conserver/group.c index cf7a910..ee9d9ca 100644 --- a/conserver/group.c +++ b/conserver/group.c @@ -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 #include +#include #if PROTOTYPES #include #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; } diff --git a/conserver/readcfg.c b/conserver/readcfg.c index 92a7894..9c76ad9 100644 --- a/conserver/readcfg.c +++ b/conserver/readcfg.c @@ -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 -#include - #include #include #include @@ -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)); } } } diff --git a/conserver/version.h b/conserver/version.h index a46fa24..51f75d1 100644 --- a/conserver/version.h +++ b/conserver/version.h @@ -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" diff --git a/console/console.man b/console/console.man index 3176295..961a706 100644 --- a/console/console.man +++ b/console/console.man @@ -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 ``'' indicates no one is viewing that console, and the login ``'' 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 diff --git a/contrib/redhat-rpm/conserver.spec b/contrib/redhat-rpm/conserver.spec index d71de6b..e45f760 100644 --- a/contrib/redhat-rpm/conserver.spec +++ b/contrib/redhat-rpm/conserver.spec @@ -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 diff --git a/contrib/solaris-package/pkginfo b/contrib/solaris-package/pkginfo index 10dd928..dc15550 100644 --- a/contrib/solaris-package/pkginfo +++ b/contrib/solaris-package/pkginfo @@ -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