Imported from conserver-7.2.1.tar.gz

This commit is contained in:
Bryan Stansell 2002-03-25 18:03:03 -08:00
parent 6a9573fea0
commit 9617199b8c
19 changed files with 720 additions and 454 deletions

11
CHANGES
View File

@ -1,6 +1,15 @@
CHANGES
=======
version 7.2.1 (Mar 25, 2002):
- bug regarding timestamp/break reading - patch by Benn Oshrin
<benno@columbia.edu>
- console names in conserver.passwd can be regular expressions
if enabled using --with-regex - based on code from Vladislav
Patenko <vp@goldentele.com>
- breaks recorded to console logs if 'b' option used in
timestamp-spec - suggested by Dave Stuit <djs@gnac.com>
version 7.2.0 (Mar 12, 2002):
- check for valid baud rates (invalid resulted in '0') -
reported by Andrew Gallatin <gallatin@cs.duke.edu>
@ -298,5 +307,5 @@ before version 6.05:
and enhancements of various types were applied.
#
# $Id: CHANGES,v 1.57 2002-03-12 00:20:25-08 bryan Exp $
# $Id: CHANGES,v 1.58 2002-03-25 17:38:41-08 bryan Exp $
#

13
FAQ
View File

@ -14,6 +14,7 @@ directed to faq@conserver.com. The FAQ answers the following questions:
6) What does "console: gethostbyname: console: host lookup error"
mean (or something close to that)?
7) How do I set up a serial port for no parity?
8) Is "Conserver" a Trademark or Registered Trademark?
99) Ok, things just don't seem to work. Help?!?
@ -79,6 +80,16 @@ directed to faq@conserver.com. The FAQ answers the following questions:
but the answer is to use a 'p' after the baud rate. So, '9600p'
is 9600 baud, no parity.
8) Is "Conserver" a trademark or registered trademark?
The best answer I can give is "not as far as I know". A couple of
quick searches through the source code doesn't find any claim of a
trademark. I've never done a registered trademark search, but if
it had been registered (by a previous author), I'm sure it would be
mentioned. But I'm no lawyer and don't deal with these types of
things, so I'm not exactly sure what I'm taking about and my answer
becomes a very vague "not as far as I know".
99) Ok, things just don't seem to work. Help?!?
Yes, this is a pretty vague question, but here are a few tips that
@ -119,5 +130,5 @@ directed to faq@conserver.com. The FAQ answers the following questions:
through the same problem?
#
# $Id: FAQ,v 1.5 2002-01-20 19:06:42-08 bryan Exp $
# $Id: FAQ,v 1.6 2002-03-25 16:16:29-08 bryan Exp $
#

38
INSTALL
View File

@ -68,6 +68,7 @@ Detailed Instructions
--with-maxmemb=MAXMEMB Specify maximum consoles per process [16]
--with-timeout=TIMEOUT Specify connect() timeout in seconds [10]
--with-libwrap[=PATH] Compile in libwrap (tcp_wrappers) support
--with-regex Use regular expressions in conserver.passwd
Not surprisingly, some match the old conserver/cons.h items...here
they are for reference:
@ -124,6 +125,41 @@ Detailed Instructions
- That's it! Just start up the console server and enjoy!
Other Information And Gotchas
- Debian Linux Distribution
The Debian folks have conserver distributed with the package
names of conserver-client and conserver-server. They are in
the distribution "sid" and the "non-free" part (because the
Ohio State license doesn't explicitly allow for modification to
the code, even though it's totally implied and the intention of
the author - I've even got proof in email! Oh well, can't
blame the Debian folks for being cautious - they've been burned
before, apparently).
- Potential GCC bug
Adam Morris <AMorris@providence.org> reported a problem with
the following line in console/console.c:
if ((in_addr_t) (-1) == pPort->sin_addr.s_addr) {
This tickles a GCC bug under HP-UX 11.11 using GCC 3.0.2 in
64-bit mode with optimization enabled (-O). The bug could
possibly be provoked in other combinations as well. His fix is
to change the line to:
if ((in_addr_t) (-1) == inet_addr(pcToHost)) {
It's also reported that newer versions of the compiler fix the
issue, so if you happen to have problems with the client
connecting to servers, you might be tickling this bug and you
can upgrade the compiler, turn off the optimization, or apply
this code change.
#
# $Id: INSTALL,v 1.21 2002-03-12 00:19:25-08 bryan Exp $
# $Id: INSTALL,v 1.22 2002-03-25 16:16:17-08 bryan Exp $
#

View File

@ -57,3 +57,8 @@
* use ansi prototypes/decls
*/
#undef USE_ANSI_PROTO
/*
* have POSIX regcomp
*/
#undef HAVE_POSIX_REGCOMP

View File

@ -59,6 +59,11 @@
*/
#undef USE_ANSI_PROTO
/*
* have POSIX regcomp
*/
#undef HAVE_POSIX_REGCOMP
/* Define if you have the <crypt.h> header file. */
#undef HAVE_CRYPT_H

896
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -216,10 +216,10 @@ AC_SUBST(WRAPINCS)
AC_ARG_WITH(libwrap,
AC_HELP_STRING([--with-libwrap@<:@=PATH@:>@],
[Compile in libwrap (tcp_wrappers) support]),
[if test "$with_libwrap" != "no"; then
if test "$with_libwrap" != "yes"; then
WRAPCPPFLAGS="-I$with_libwrap/include"
WRAPLDFLAGS="-L$with_libwrap/lib"
[if test "$withval" != "no"; then
if test "$withval" != "yes"; then
WRAPCPPFLAGS="-I$withval/include"
WRAPLDFLAGS="-L$withval/lib"
else
WRAPCPPFLAGS=""
WRAPLDFLAGS=""
@ -254,6 +254,40 @@ AC_ARG_WITH(libwrap,
dnl ### Check for needed functions. ################################
dnl The following basically stollen from the less-358 distribution, but
dnl modified for my own purposes
AC_MSG_CHECKING(for POSIX regex)
AC_ARG_WITH(regex,
AC_HELP_STRING([--with-regex],
[Use regular expressions in conserver.passwd]),
[if test "$withval" = yes; then
AC_TRY_RUN([
#include <sys/types.h>
#include <regex.h>
main() { regex_t r; regmatch_t rm; char *text = "xabcy";
if (regcomp(&r, "abc", 0)) exit(1);
if (regexec(&r, text, 1, &rm, 0)) exit(1);
if (rm.rm_so != 1) exit(1); /* check for correct offset */
exit(0); }
],have_posix_regex=yes,have_posix_regex=no,have_posix_regex=unknown)
if test $have_posix_regex = yes; then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_POSIX_REGCOMP)
elif test $have_posix_regex = unknown; then
AC_TRY_LINK([
#include <sys/types.h>
#include <regex.h>],
[regex_t *r; regfree(r);],
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_POSIX_REGCOMP))
else
AC_MSG_RESULT(no)
fi
else
AC_MSG_RESULT(no)
fi],[AC_MSG_RESULT(no)])
AC_CHECK_FUNCS(getopt strerror getrlimit getsid setsid getuserattr setgroups tcgetpgrp tcsetpgrp tcgetattr tcsetattr tcsendbreak setpgrp getutent setttyent getspnam setlinebuf setvbuf ptsname grantpt unlockpt flock sigaction setsockopt getdtablesize putenv memset memcpy memcmp sysconf getpassphrase getlogin)
AC_FUNC_SETPGRP

View File

@ -1,4 +1,4 @@
.\" $Id: conserver.cf.man,v 1.23 2002-01-20 21:14:43-08 bryan Exp $
.\" $Id: conserver.cf.man,v 1.24 2002-03-25 17:14:34-08 bryan Exp $
.\" @(#)constab.5 01/06/91 OSU CIS; Thomas A. Fine
.TH CONSERVER.CF 5 "Local"
.SH NAME
@ -84,7 +84,7 @@ specifies the time between
timestamps applied to the console log file and
whether to log read/write connection actions.
The format of the specification is
[\fImark-interval\fP[\fBm\fP|\fBh\fP|\fBd\fP|\fBl\fP]][\fBa\fP].
[\fImark-interval\fP[\fBm\fP|\fBh\fP|\fBd\fP|\fBl\fP]][\fBa\fP][\fBb\fP].
The timestamps look like `[-- MARK -- Mon Jan 25 14:46:56 1999]'.
The `\fBm\fP', `\fBh\fP', and `\fBd\fP' tags specify
`minutes' (the default), `hours', and `days'. The `\fBl\fP' tag
@ -98,6 +98,8 @@ An `\fBa\fP' can be specified to add logs of
including the user's name and the host from which the
\fBconsole\fP connection was made,
to the logfile.
A `\fBb\fP' can be specified to add logging of break sequences sent
to the console.
.IP
A default \fItimestamp-spec\fP can be specified by using the
\fB\s-1TIMESTAMP=\s0\fP syntax.

View File

@ -1,4 +1,4 @@
.\" $Id: conserver.passwd.man,v 1.4 2001-08-04 20:54:25-07 bryan Exp $
.\" $Id: conserver.passwd.man,v 1.5 2002-03-25 15:45:43-08 bryan Exp $
.TH CONSERVER.PASSWD 5 "Local"
.SH NAME
conserver.passwd \- user access information for conserver(8)
@ -45,6 +45,8 @@ a comma- and/or space-separated list of consoles
to which the user is permitted to connect,
or the string ``\fBany\fP'' to allow access to any console.
These names must match the console names in the \fBconserver.cf\fP file.
If regular expression support was compiled in using --with-regex, the
names here are treated as regular expressions.
.SH EXAMPLE
.TP 30
\fBmary:r71mXjfALB5Ak:any\fP

View File

@ -173,13 +173,13 @@
<H3>Downloading</H3>
<P>The current version, released on Mar 12, 2002, is <A
<P>The current version, released on Mar 25, 2002, is <A
href=
"http://www.conserver.com/7.2.0.tar.gz">7.2.0.tar.gz</A>.
"http://www.conserver.com/7.2.1.tar.gz">7.2.1.tar.gz</A>.
You can get it via <A href=
"ftp://ftp.conserver.com/conserver/7.2.0.tar.gz">FTP</A>
"ftp://ftp.conserver.com/conserver/7.2.1.tar.gz">FTP</A>
or <A href=
"http://www.conserver.com/7.2.0.tar.gz">HTTP</A>. See the
"http://www.conserver.com/7.2.1.tar.gz">HTTP</A>. See the
<A href="http://www.conserver.com/CHANGES">CHANGES</A>
file for information on the latest updates.</P>

View File

@ -1,5 +1,5 @@
/*
* $Id: consent.c,v 5.85 2002-02-25 14:00:38-08 bryan Exp $
* $Id: consent.c,v 5.86 2002-03-25 17:26:28-08 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -595,8 +595,9 @@ ConsDown(pCE, pfdSet)
}
if ((CONSFILE *) 0 != pCE->fdlog) {
if (pCE->nolog) {
fileWrite(pCE->fdlog, "[-- Console logging restored --]\r\n",
-1);
filePrint(pCE->fdlog,
"[-- Console logging restored -- %s]\r\n",
strtime(NULL));
}
filePrint(pCE->fdlog, "[-- Console down -- %s]\r\n",
strtime(NULL));

View File

@ -1,5 +1,5 @@
/*
* $Id: consent.h,v 5.29 2002-02-25 14:00:38-08 bryan Exp $
* $Id: consent.h,v 5.30 2002-03-25 17:07:04-08 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -81,6 +81,7 @@ typedef struct consent { /* console information */
CONSFILE *fdlog; /* the local log file */
int fdtty; /* the port to talk to machine on */
int activitylog; /* log attach/detach/bump */
int breaklog; /* log breaks sent */
short int fup; /* we setup this line? */
short int fronly; /* we can only read this console */
struct client *pCLon; /* clients on this console */

View File

@ -1,5 +1,5 @@
/*
* $Id: group.c,v 5.168 2002-03-11 18:05:40-08 bryan Exp $
* $Id: group.c,v 5.176 2002-03-25 17:46:04-08 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -72,6 +72,9 @@
#include <varargs.h>
#endif
#include <arpa/telnet.h>
#if HAVE_POSIX_REGCOMP
#include <regex.h>
#endif
#if defined(USE_LIBWRAP)
#include <syslog.h>
@ -192,9 +195,9 @@ destroyConsent(pGE, pCE)
tagLogfile(pCE, "%s detached", pCL->acid.string);
if (pCE->nolog) {
pCE->nolog = 0;
fileWrite(pCE->fdlog,
"[-- Console logging restored (logout) --]\r\n",
-1);
filePrint(pCE->fdlog,
"[-- Console logging restored (logout) -- %s]\r\n",
strtime(NULL));
}
}
/* mark as unconnected and remove from both
@ -781,11 +784,35 @@ CheckPasswd(pCLServing, pw_string)
return 1;
} else {
char *p;
int max;
max = strlen(server);
int status;
static STRING tomatch = { (char *)0, 0, 0 };
#if HAVE_POSIX_REGCOMP
regex_t re;
#endif
buildMyString((char *)0, &tomatch);
#if HAVE_POSIX_REGCOMP
buildMyStringChar('^', &tomatch);
buildMyString(server, &tomatch);
buildMyStringChar('$', &tomatch);
#else
buildMyString(server, &tomatch);
#endif
p = pCLServing->pCEwant->server.string;
while (strlen(p) >= max) {
if (strcmp(server, p) == 0) {
while (p != (char *)0) {
#if HAVE_POSIX_REGCOMP
if (regcomp(&re, tomatch.string, REG_NOSUB)
!= 0) {
Error
("%s(%d) server name `%s' not a valid regular expression",
pcPasswd, iLine, server);
break;
}
status = regexec(&re, p, 0, NULL, 0);
regfree(&re);
#else
status = strcmp(tomatch.string, p);
#endif
if (status == 0) {
if (fVerbose) {
Info("User %s logging into server %s",
pCLServing->acid.string,
@ -919,7 +946,7 @@ doBreakWork(pCLServing, pCEServing, bt, cleanup)
#endif
{
char *p, s;
short int backslash;
short int backslash = 0, waszero = 0;
short int cntrl;
char oct[3];
short int octs = -1;
@ -930,11 +957,14 @@ doBreakWork(pCLServing, pCEServing, bt, cleanup)
if (cleanup && (bt < 1 || bt > 9))
return;
if (bt < 0 || bt > 9) {
(void)fileWrite(pCLServing->fd, "aborted]\r\n", -1);
if (!cleanup)
(void)fileWrite(pCLServing->fd, "aborted]\r\n", -1);
return;
}
if (bt == 0)
if (bt == 0) {
bt = pCEServing->breakType;
waszero = 1;
}
if (bt == 0 || breakList[bt - 1].used == 0) {
if (!cleanup)
(void)fileWrite(pCLServing->fd, "undefined]\r\n", -1);
@ -1117,8 +1147,20 @@ doBreakWork(pCLServing, pCEServing, bt, cleanup)
if (cleanup) {
buildMyString((char *)0, &breakList[bt - 1]);
buildMyString(cleaned.string, &breakList[bt - 1]);
} else
} else {
fileWrite(pCLServing->fd, "sent]\r\n", -1);
if (pCEServing->breaklog) {
if (waszero) {
filePrint(pCEServing->fdlog,
"[-- break #0(%d) sent -- `%s' -- %s]\r\n", bt,
breakList[bt - 1].string, strtime(NULL));
} else {
filePrint(pCEServing->fdlog,
"[-- break #%d sent -- `%s' -- %s]\r\n", bt,
breakList[bt - 1].string, strtime(NULL));
}
}
}
}
void
@ -1527,9 +1569,9 @@ Kiddie(pGE, sfd)
pCLServing->acid.string);
if (pCEServing->nolog) {
pCEServing->nolog = 0;
fileWrite(pCEServing->fdlog,
"[-- Console logging restored (logout) --]\r\n",
-1);
filePrint(pCEServing->fdlog,
"[-- Console logging restored (logout) -- %s]\r\n",
strtime(NULL));
}
pCEServing->pCLwr = FindWrite(pCEServing->pCLon);
}
@ -2320,7 +2362,7 @@ Kiddie(pGE, sfd)
}
filePrint(pCLServing->fd,
":%s:%s:%s,%s,%s,%d,%d:%d:%s\r\n",
":%s:%s:%s,%s,%s,%s,%d,%d:%d:%s\r\n",
(pCE->fup ? "up" : "down"),
(pCE->fronly ? "ro" : "rw"),
pCE->lfile.string,
@ -2328,7 +2370,10 @@ Kiddie(pGE, sfd)
nolog ? "nolog" : "log"),
(pCE->
activitylog ? "act" :
"noact"), pCE->mark,
"noact"),
(pCE->
breaklog ? "brk" : "nobrk"),
pCE->mark,
(pCE->fdlog ? pCE->fdlog->
fd : -1), pCE->breakType,
(pCE->
@ -2343,14 +2388,16 @@ Kiddie(pGE, sfd)
fileWrite(pCLServing->fd,
"logging off]\r\n", -1);
filePrint(pCEServing->fdlog,
"[-- Console logging disabled by %s --]\r\n",
pCLServing->acid.string);
"[-- Console logging disabled by %s -- %s]\r\n",
pCLServing->acid.string,
strtime(NULL));
} else {
fileWrite(pCLServing->fd,
"logging on]\r\n", -1);
filePrint(pCEServing->fdlog,
"[-- Console logging restored by %s --]\r\n",
pCLServing->acid.string);
"[-- Console logging restored by %s -- %s]\r\n",
pCLServing->acid.string,
strtime(NULL));
}
} else {
filePrint(pCLServing->fd,

View File

@ -1,5 +1,5 @@
/*
* $Id: main.c,v 5.89 2002-02-27 18:21:51-08 bryan Exp $
* $Id: main.c,v 5.90 2002-03-25 17:08:35-08 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -338,10 +338,9 @@ dumpDataStructures()
pCE->fvirtual, pCE->acslave.string, pCE->pccmd.string,
pCE->ipid);
Debug(1,
" nolog=%d, fdtty=%d, activitylog=%d, fup=%d, fronly=%d",
pCE->nolog, pCE->fdtty, pCE->activitylog, pCE->fup,
pCE->fronly);
Debug(1, " nolog=%d, fdtty=%d, activitylog=%d, breaklog=%d",
pCE->nolog, pCE->fdtty, pCE->activitylog, pCE->breaklog);
Debug(1, " fup=%d, fronly=%d", pCE->fup, pCE->fronly);
Debug(1, " ------");
}
}

View File

@ -1,5 +1,5 @@
/*
* $Id: readcfg.c,v 5.82 2002-03-11 18:21:37-08 bryan Exp $
* $Id: readcfg.c,v 5.84 2002-03-25 17:10:15-08 bryan Exp $
*
* Copyright conserver.com, 2000
*
@ -82,7 +82,7 @@ parseMark(pcFile, iLine, pcMark, tyme, pCE)
{
static STRING mark = { (char *)0, 0, 0 };
char *p, *n = (char *)0;
int activity = 0;
int activity = 0, bactivity = 0;
int factor = 0, pfactor = 0;
int value = 0, pvalue = 0;
@ -99,6 +99,13 @@ parseMark(pcFile, iLine, pcMark, tyme, pCE)
pcFile, iLine, pcMark);
}
activity = 1;
} else if (*p == 'b' || *p == 'B') {
if (n != (char *)0) {
Error
("%s(%d) bad timestamp specification `%s': numeral before `b' (ignoring numeral)",
pcFile, iLine, pcMark);
}
bactivity = 1;
} else if (*p == 'm' || *p == 'M') {
pfactor = 60;
} else if (*p == 'h' || *p == 'H') {
@ -153,11 +160,13 @@ parseMark(pcFile, iLine, pcMark, tyme, pCE)
value = pvalue * factor;
}
Debug(1, "Mark spec of `%s' parsed: factor=%d, value=%d, activity=%d",
pcMark, factor, value, activity);
Debug(1,
"Mark spec of `%s' parsed: factor=%d, value=%d, activity=%d, bactivity=%d",
pcMark, factor, value, activity, bactivity);
if (pCE != (CONSENT *) 0) {
pCE->activitylog = activity;
pCE->breaklog = bactivity;
if (factor && value) {
pCE->mark = value;
if (factor > 0) {
@ -400,6 +409,8 @@ ReadCfg(pcFile, fp, master)
pcMark = pruneSpace(pcMark);
pcBreak = pruneSpace(pcBreak);
/* Ignore null specs */
if (pcMark[0] == '\000')
pcMark = (char *)0;
if (pcBreak[0] == '\000')
pcBreak = (char *)0;
}
@ -825,6 +836,7 @@ ReadCfg(pcFile, fp, master)
}
}
pCEmatch->activitylog = pCE->activitylog;
pCEmatch->breaklog = pCE->breaklog;
pCEmatch->mark = pCE->mark;
pCEmatch->nextMark = pCE->nextMark;
pCEmatch->breakType = pCE->breakType;

View File

@ -1,5 +1,5 @@
/*
* $Id: version.h,v 1.34 2002-03-11 18:11:36-08 bryan Exp $
* $Id: version.h,v 1.35 2002-03-25 16:18:03-08 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 7.2.0"
#define THIS_VERSION "conserver.com version 7.2.1"

View File

@ -4,7 +4,7 @@
#
%define pkg conserver
%define ver 7.2.0
%define ver 7.2.1
# define the name of the machine on which the main conserver
# daemon will be running if you don't want to use the default
@ -96,7 +96,7 @@ fi
%config(noreplace) %{_sysconfdir}/conserver.passwd
%attr(555,root,root) %{_initrddir}/conserver
%{prefix}/bin/console
%{prefix}/man/man1/console.1.gz
%{prefix}/man/man8/conserver.8.gz
%{prefix}/man/man8/conserver.cf.8.gz
%{prefix}/share/man/man1/console.1.gz
%{prefix}/share/man/man8/conserver.8.gz
%{prefix}/share/man/man5/conserver.cf.5.gz
%{prefix}/sbin/conserver

View File

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

View File

@ -10,5 +10,5 @@ d none share/man 0755 bin bin
d none share/man/man1m 0755 bin bin
f none share/man/man1m/conserver.1m 0644 bin bin
f none share/man/man1m/console.1m 0644 bin bin
d none share/man/man4 0755 bin bin
f none share/man/man4/conserver.cf.4 0644 bin bin
d none share/man/man5 0755 bin bin
f none share/man/man5/conserver.cf.5 0644 bin bin