mirror of
https://github.com/bstansell/conserver.git
synced 2025-04-23 18:13:36 +00:00
Imported from conserver-7.2.2.tar.gz
This commit is contained in:
parent
9617199b8c
commit
38ab668078
16
CHANGES
16
CHANGES
@ -1,6 +1,20 @@
|
||||
CHANGES
|
||||
=======
|
||||
|
||||
version 7.2.2 (Jun 05, 2002):
|
||||
- added 'n' as token for no-parity - patch by Greg A. Woods
|
||||
<woods@weird.com>
|
||||
- extra timestamps occur when consoles come back up after being
|
||||
down longer than their timestamp period - reported by Dave
|
||||
Stuit <djs@gnac.com>
|
||||
- AIX 5.1 psuedo-terminal support broken - patch by William P
|
||||
LePera <lepera@us.ibm.com>
|
||||
- PID file overwritten and not unlinked on exit - reported by
|
||||
William P LePera <lepera@us.ibm.com>
|
||||
- signals cleaned up in master, child, and sub-proc sections
|
||||
- SIGPIPE now ignored - reported by Greg A. Woods
|
||||
<woods@weird.com>
|
||||
|
||||
version 7.2.1 (Mar 25, 2002):
|
||||
- bug regarding timestamp/break reading - patch by Benn Oshrin
|
||||
<benno@columbia.edu>
|
||||
@ -307,5 +321,5 @@ before version 6.05:
|
||||
and enhancements of various types were applied.
|
||||
|
||||
#
|
||||
# $Id: CHANGES,v 1.58 2002-03-25 17:38:41-08 bryan Exp $
|
||||
# $Id: CHANGES,v 1.60 2002-06-05 15:05:13-07 bryan Exp $
|
||||
#
|
||||
|
17
TODO
17
TODO
@ -10,6 +10,10 @@ Bryan Stansell
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
- checks for EPIPE during write() should really be done, but, for the
|
||||
most part, consoles and clients will come around and we'll see
|
||||
problems on the read().
|
||||
|
||||
- Singular logging so that swatch/logsurfer can watch for errors across
|
||||
the board - unloved output comes close
|
||||
|
||||
@ -98,6 +102,17 @@ Bryan Stansell
|
||||
- support 2 stop bits (as well as other stty-type options in console
|
||||
definitions) : Kelly Setzer <setzer@placemark.com>
|
||||
|
||||
- ability to configure strings to be sent to a console whenever it is
|
||||
(re)opened (eg. a termserver login) : Greg A. Woods
|
||||
<woods@planix.com>
|
||||
|
||||
- ability to configure strings to be sent to a console periodically :
|
||||
Greg A. Woods <woods@planix.com>
|
||||
|
||||
- show attach/detach events to/of spy console clients : Greg A. Woods
|
||||
<woods@planix.com>
|
||||
|
||||
|
||||
#
|
||||
# $Id: TODO,v 1.22 2002-03-11 18:11:48-08 bryan Exp $
|
||||
# $Id: TODO,v 1.24 2002-06-05 12:00:35-07 bryan Exp $
|
||||
#
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $Id: conserver.cf.man,v 1.24 2002-03-25 17:14:34-08 bryan Exp $
|
||||
.\" $Id: conserver.cf.man,v 1.25 2002-06-05 11:14:35-07 bryan Exp $
|
||||
.\" @(#)constab.5 01/06/91 OSU CIS; Thomas A. Fine
|
||||
.TH CONSERVER.CF 5 "Local"
|
||||
.SH NAME
|
||||
@ -46,8 +46,8 @@ This is typically the name of the host whose console is being monitored.
|
||||
the full path name of the device for this line.
|
||||
The \fIbaud\fP rate is the speed and parity for this console.
|
||||
Speed may be given as an integer,
|
||||
parity only requires the first letter of any of: even, odd, mark, space.
|
||||
For no parity, use the character `p'.
|
||||
parity only requires the first letter of any of: even, odd, mark, space, none.
|
||||
For historical reasons, `p' can also be used for no parity.
|
||||
.TP
|
||||
.BI ! termserver
|
||||
the hostname of the terminal server to connect to.
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META name="generator" content="HTML Tidy, see www.w3.org">
|
||||
<META name="generator" content=
|
||||
"HTML Tidy for Solaris (vers 1st May 2002), see www.w3.org">
|
||||
<META name="keywords" content=
|
||||
"conserver,serial,console,serial console,unix,tty,ttya,ttyb, rs-232,rs232,bryan stansell,stansell,console server,terminal server,headless">
|
||||
<META name="author" content=
|
||||
@ -11,19 +12,20 @@
|
||||
"http://www.conserver.com/conserver.ico">
|
||||
|
||||
<TITLE>Conserver</TITLE>
|
||||
<STYLE type="text/css">
|
||||
|
||||
<STYLE type="text/css">
|
||||
body {
|
||||
background-color: #EEEEEE;
|
||||
color: black;
|
||||
}
|
||||
</STYLE>
|
||||
</STYLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<TABLE summary="Logo" bgcolor="black" width="100%" align=
|
||||
"CENTER">
|
||||
"center">
|
||||
<TR>
|
||||
<TD align="CENTER"><BR>
|
||||
<TD align="center"><BR>
|
||||
<IMG src="conserver.gif" alt="Conserver"><BR>
|
||||
<BR>
|
||||
</TD>
|
||||
@ -32,7 +34,7 @@
|
||||
<BR>
|
||||
|
||||
|
||||
<TABLE summary="Conserver Page" width="80%" align="CENTER">
|
||||
<TABLE summary="Conserver Page" width="80%" align="center">
|
||||
<TR>
|
||||
<TD>
|
||||
<!-- empty cell here, then search box on right spans two rows,
|
||||
@ -41,8 +43,8 @@
|
||||
-->
|
||||
</TD>
|
||||
|
||||
<TD rowspan="2" align="RIGHT">
|
||||
<FORM method="POST" action=
|
||||
<TD rowspan="2" align="right">
|
||||
<FORM method="post" action=
|
||||
"http://www.conserver.com/cgi-bin/htsearch">
|
||||
<INPUT type="HIDDEN" name="method" value="and"> <INPUT
|
||||
type="HIDDEN" name="format" value="builtin-long">
|
||||
@ -173,13 +175,13 @@
|
||||
|
||||
<H3>Downloading</H3>
|
||||
|
||||
<P>The current version, released on Mar 25, 2002, is <A
|
||||
<P>The current version, released on Jun 05, 2002, is <A
|
||||
href=
|
||||
"http://www.conserver.com/7.2.1.tar.gz">7.2.1.tar.gz</A>.
|
||||
"http://www.conserver.com/7.2.2.tar.gz">7.2.2.tar.gz</A>.
|
||||
You can get it via <A href=
|
||||
"ftp://ftp.conserver.com/conserver/7.2.1.tar.gz">FTP</A>
|
||||
"ftp://ftp.conserver.com/conserver/7.2.2.tar.gz">FTP</A>
|
||||
or <A href=
|
||||
"http://www.conserver.com/7.2.1.tar.gz">HTTP</A>. See the
|
||||
"http://www.conserver.com/7.2.2.tar.gz">HTTP</A>. See the
|
||||
<A href="http://www.conserver.com/CHANGES">CHANGES</A>
|
||||
file for information on the latest updates.</P>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: consent.c,v 5.86 2002-03-25 17:26:28-08 bryan Exp $
|
||||
* $Id: consent.c,v 5.88 2002-06-05 15:05:00-07 bryan Exp $
|
||||
*
|
||||
* Copyright conserver.com, 2000
|
||||
*
|
||||
@ -124,6 +124,8 @@ PARITY parity[] = {
|
||||
, /* even */
|
||||
{'m', PARENB | CS7 | PARODD | PAREXT, 0}
|
||||
, /* mark */
|
||||
{'n', CS8, 0}
|
||||
, /* pass 8 bits, no parity */
|
||||
{'o', PARENB | CS7 | PARODD, 0}
|
||||
, /* odd */
|
||||
{'p', CS8, 0}
|
||||
@ -138,6 +140,8 @@ PARITY parity[] = {
|
||||
{'o', ODDP, EVENP}
|
||||
, /* odd */
|
||||
# if defined(PASS8)
|
||||
{'n', PASS8, EVENP | ODDP}
|
||||
, /* pass 8 bits, no parity */
|
||||
{'p', PASS8, EVENP | ODDP}
|
||||
, /* pass 8 bits, no parity */
|
||||
# endif
|
||||
@ -400,16 +404,28 @@ VirtDev(pCE)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* put the signals back that we trap
|
||||
/* put the signals back that we ignore (trapped auto-reset to default)
|
||||
*/
|
||||
simpleSignal(SIGINT, SIG_DFL);
|
||||
simpleSignal(SIGQUIT, SIG_DFL);
|
||||
simpleSignal(SIGINT, SIG_DFL);
|
||||
simpleSignal(SIGPIPE, SIG_DFL);
|
||||
#if defined(SIGTTOU)
|
||||
simpleSignal(SIGTTOU, SIG_DFL);
|
||||
#endif
|
||||
#if defined(SIGTTIN)
|
||||
simpleSignal(SIGTTIN, SIG_DFL);
|
||||
#endif
|
||||
#if defined(SIGTSTP)
|
||||
simpleSignal(SIGTSTP, SIG_DFL);
|
||||
#endif
|
||||
#if defined(SIGPOLL)
|
||||
simpleSignal(SIGPOLL, SIG_DFL);
|
||||
#endif
|
||||
|
||||
/* setup new process with clean filew descriptors
|
||||
*/
|
||||
i = cmaxfiles();
|
||||
for ( /* i above */ ; i-- > 2;) {
|
||||
for ( /* i above */ ; --i > 2;) {
|
||||
close(i);
|
||||
}
|
||||
/* leave 2 until we *have to close it*
|
||||
@ -431,14 +447,18 @@ VirtDev(pCE)
|
||||
Error("%s: fd sync error", pCE->server.string);
|
||||
exit(EX_UNAVAILABLE);
|
||||
}
|
||||
# if HAVE_STROPTS_H
|
||||
# if HAVE_STROPTS_H && !defined(_AIX)
|
||||
/* SYSVr4 semantics for opening stream ptys (gregf)
|
||||
* under PTX (others?) we have to push the compatibility
|
||||
* streams modules `ptem', `ld', and `ttcompat'
|
||||
*/
|
||||
Debug(1, "Pushing ptemp onto pseudo-terminal");
|
||||
(void)ioctl(0, I_PUSH, "ptem");
|
||||
Debug(1, "Pushing ldterm onto pseudo-terminal");
|
||||
(void)ioctl(0, I_PUSH, "ldterm");
|
||||
Debug(1, "Pushing ttcompat onto pseudo-terminal");
|
||||
(void)ioctl(0, I_PUSH, "ttcompat");
|
||||
Debug(1, "Done pushing modules onto pseudo-terminal");
|
||||
# endif
|
||||
|
||||
# if HAVE_TERMIOS_H
|
||||
@ -680,6 +700,7 @@ ConsInit(pCE, pfdSet, useHostCache)
|
||||
int useHostCache;
|
||||
#endif
|
||||
{
|
||||
time_t tyme;
|
||||
#if USE_ANSI_PROTO
|
||||
extern int FallBack(STRING *, STRING *);
|
||||
#else
|
||||
@ -858,4 +879,16 @@ ConsInit(pCE, pfdSet, useHostCache)
|
||||
} else {
|
||||
TtyDev(pCE);
|
||||
}
|
||||
|
||||
/* If we have marks, adjust the next one so that it's in the future */
|
||||
if (pCE->nextMark > 0) {
|
||||
tyme = time((time_t *) 0);
|
||||
if (tyme >= pCE->nextMark) {
|
||||
/* Add as many pCE->mark values as necessary so that we move
|
||||
* beyond the current time.
|
||||
*/
|
||||
pCE->nextMark +=
|
||||
(((tyme - pCE->nextMark) / pCE->mark) + 1) * pCE->mark;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: fallback.c,v 5.44 2002-02-12 20:28:14-08 bryan Exp $
|
||||
* $Id: fallback.c,v 5.45 2002-06-05 11:12:24-07 bryan Exp $
|
||||
*
|
||||
* Copyright conserver.com, 2000
|
||||
*
|
||||
@ -33,6 +33,40 @@
|
||||
#include <port.h>
|
||||
#include <util.h>
|
||||
|
||||
#if defined(_AIX)
|
||||
/*
|
||||
* get a pty for the user (emulate the neato sequent call) (mm)
|
||||
*/
|
||||
static int
|
||||
#if USE_ANSI_PROTO
|
||||
getpseudotty(STRING * slave, STRING * master)
|
||||
#else
|
||||
getpseudotty(slave, master)
|
||||
STRING *slave;
|
||||
STRING *master;
|
||||
#endif
|
||||
{
|
||||
int fd;
|
||||
char *pcName;
|
||||
|
||||
if (0 > (fd = open("/dev/ptc", O_RDWR | O_NDELAY, 0))) {
|
||||
return -1;
|
||||
}
|
||||
if ((char *)0 == (pcName = ttyname(fd))) {
|
||||
return -1;
|
||||
}
|
||||
buildMyString((char *)0, slave);
|
||||
buildMyString(pcName, slave);
|
||||
|
||||
buildMyString((char *)0, master);
|
||||
buildMyString(pcName, master);
|
||||
master->string[7] = 'c';
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#if defined(HAVE_PTSNAME) && defined(HAVE_GRANTPT) && defined(HAVE_UNLOCKPT)
|
||||
#if defined(linux)
|
||||
extern char *ptsname();
|
||||
@ -111,38 +145,6 @@ static char charone[] = "prstuvwxyzPQRSTUVWq";
|
||||
static char chartwo[] =
|
||||
"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
# if defined(_AIX)
|
||||
/*
|
||||
* get a pty for the user (emulate the neato sequent call) (mm)
|
||||
*/
|
||||
static int
|
||||
#if USE_ANSI_PROTO
|
||||
getpseudotty(STRING * slave, STRING * master)
|
||||
#else
|
||||
getpseudotty(slave, master)
|
||||
STRING *slave;
|
||||
STRING *master;
|
||||
#endif
|
||||
{
|
||||
int fd;
|
||||
char *pcName;
|
||||
|
||||
if (0 > (fd = open("/dev/ptc", O_RDWR | O_NDELAY, 0))) {
|
||||
return -1;
|
||||
}
|
||||
if ((char *)0 == (pcName = ttyname(fd))) {
|
||||
return -1;
|
||||
}
|
||||
buildMyString((char *)0, slave);
|
||||
buildMyString(pcName, slave);
|
||||
|
||||
buildMyString((char *)0, master);
|
||||
buildMyString(pcName, master);
|
||||
master->string[7] = 'c';
|
||||
|
||||
return fd;
|
||||
}
|
||||
# else
|
||||
/*
|
||||
* get a pty for the user (emulate the neato sequent call) (ksb)
|
||||
*/
|
||||
@ -206,8 +208,8 @@ getpseudotty(slave, master)
|
||||
buildMyString(acSlave, slave);
|
||||
return fd;
|
||||
}
|
||||
# endif /* _AIX */
|
||||
#endif
|
||||
#endif /* _AIX */
|
||||
|
||||
/*
|
||||
* get a Joe pty bacause the daemon is not with us, sadly. (ksb)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: group.c,v 5.176 2002-03-25 17:46:04-08 bryan Exp $
|
||||
* $Id: group.c,v 5.178 2002-06-05 15:05:00-07 bryan Exp $
|
||||
*
|
||||
* Copyright conserver.com, 2000
|
||||
*
|
||||
@ -485,7 +485,11 @@ Mark(pGE)
|
||||
if ((pCE->nextMark > 0) && (tyme >= pCE->nextMark)) {
|
||||
Debug(1, "[-- MARK --] stamp added to %s", pCE->lfile.string);
|
||||
(void)fileWrite(pCE->fdlog, acOut, -1);
|
||||
pCE->nextMark += pCE->mark;
|
||||
/* Add as many pCE->mark values as necessary so that we move
|
||||
* beyond the current time.
|
||||
*/
|
||||
pCE->nextMark +=
|
||||
(((tyme - pCE->nextMark) / pCE->mark) + 1) * pCE->mark;
|
||||
}
|
||||
}
|
||||
if ((i = (ALARMTIME - (tyme % 60))) <= 0) {
|
||||
@ -1279,11 +1283,20 @@ Kiddie(pGE, sfd)
|
||||
/* turn off signals that master() might have turned on
|
||||
* (only matters if respawned)
|
||||
*/
|
||||
simpleSignal(SIGURG, SIG_DFL);
|
||||
simpleSignal(SIGQUIT, SIG_IGN);
|
||||
simpleSignal(SIGPIPE, SIG_IGN);
|
||||
#if defined(SIGTTOU)
|
||||
simpleSignal(SIGTTOU, SIG_IGN);
|
||||
#endif
|
||||
#if defined(SIGTTIN)
|
||||
simpleSignal(SIGTTIN, SIG_IGN);
|
||||
#endif
|
||||
#if defined(SIGPOLL)
|
||||
simpleSignal(SIGPOLL, SIG_IGN);
|
||||
#endif
|
||||
simpleSignal(SIGTERM, FlagGoAway);
|
||||
simpleSignal(SIGCHLD, FlagReapVirt);
|
||||
if (!fDaemon)
|
||||
simpleSignal(SIGINT, FlagGoAwayAlso);
|
||||
simpleSignal(SIGINT, FlagGoAwayAlso);
|
||||
|
||||
sprintf(acOut, "ctl_%d", pGE->port);
|
||||
buildMyString(acOut, &pGE->pCEctl->server);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: main.c,v 5.90 2002-03-25 17:08:35-08 bryan Exp $
|
||||
* $Id: main.c,v 5.94 2002-06-05 15:05:00-07 bryan Exp $
|
||||
*
|
||||
* Copyright conserver.com, 2000
|
||||
*
|
||||
@ -115,7 +115,6 @@ daemonize()
|
||||
#endif
|
||||
{
|
||||
int res;
|
||||
FILE *fp;
|
||||
#if !HAVE_SETSID
|
||||
int td;
|
||||
#endif
|
||||
@ -125,6 +124,9 @@ daemonize()
|
||||
#if defined(SIGTTOU)
|
||||
simpleSignal(SIGTTOU, SIG_IGN);
|
||||
#endif
|
||||
#if defined(SIGTTIN)
|
||||
simpleSignal(SIGTTIN, SIG_IGN);
|
||||
#endif
|
||||
#if defined(SIGTSTP)
|
||||
simpleSignal(SIGTSTP, SIG_IGN);
|
||||
#endif
|
||||
@ -161,14 +163,6 @@ daemonize()
|
||||
close(td);
|
||||
}
|
||||
#endif
|
||||
|
||||
fp = fopen(PIDFILE, "w");
|
||||
if (fp) {
|
||||
fprintf(fp, "%d\n", (int)getpid());
|
||||
fclose(fp);
|
||||
} else {
|
||||
Error("can't write pid to %s", PIDFILE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: master.c,v 5.73 2002-02-25 14:00:38-08 bryan Exp $
|
||||
* $Id: master.c,v 5.76 2002-06-05 15:05:00-07 bryan Exp $
|
||||
*
|
||||
* Copyright conserver.com, 2000
|
||||
*
|
||||
@ -260,8 +260,18 @@ Master()
|
||||
char *ambiguous = (char *)0;
|
||||
GRPENT *pGE;
|
||||
CONSENT *pCE;
|
||||
FILE *fp;
|
||||
|
||||
|
||||
/* set up signal handler */
|
||||
simpleSignal(SIGPIPE, SIG_IGN);
|
||||
simpleSignal(SIGQUIT, SIG_IGN);
|
||||
#if defined(SIGTTOU)
|
||||
simpleSignal(SIGTTOU, SIG_IGN);
|
||||
#endif
|
||||
#if defined(SIGTTIN)
|
||||
simpleSignal(SIGTTIN, SIG_IGN);
|
||||
#endif
|
||||
#if defined(SIGPOLL)
|
||||
simpleSignal(SIGPOLL, SIG_IGN);
|
||||
#endif
|
||||
@ -269,8 +279,7 @@ Master()
|
||||
simpleSignal(SIGTERM, FlagQuitIt);
|
||||
simpleSignal(SIGUSR1, FlagSawUSR1);
|
||||
simpleSignal(SIGHUP, FlagSawHUP);
|
||||
if (!fDaemon)
|
||||
simpleSignal(SIGINT, FlagSawINT);
|
||||
simpleSignal(SIGINT, FlagSawINT);
|
||||
|
||||
/* set up port for master to listen on
|
||||
*/
|
||||
@ -305,8 +314,17 @@ Master()
|
||||
return;
|
||||
}
|
||||
|
||||
fp = fopen(PIDFILE, "w");
|
||||
if (fp) {
|
||||
fprintf(fp, "%d\n", (int)getpid());
|
||||
fclose(fp);
|
||||
} else {
|
||||
Error("can't write pid to %s", PIDFILE);
|
||||
}
|
||||
|
||||
FD_ZERO(&rmaster);
|
||||
FD_SET(msfd, &rmaster);
|
||||
|
||||
for (fSawQuit = 0; !fSawQuit; /* can't close here :-( */ ) {
|
||||
if (fSawCHLD) {
|
||||
fSawCHLD = 0;
|
||||
@ -634,4 +652,6 @@ Master()
|
||||
fileClose(&csocket);
|
||||
exit(EX_OK);
|
||||
}
|
||||
|
||||
(void)unlink(PIDFILE);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: version.h,v 1.35 2002-03-25 16:18:03-08 bryan Exp $
|
||||
* $Id: version.h,v 1.36 2002-06-05 11:16:02-07 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.1"
|
||||
#define THIS_VERSION "conserver.com version 7.2.2"
|
||||
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
|
||||
%define pkg conserver
|
||||
%define ver 7.2.1
|
||||
%define ver 7.2.2
|
||||
|
||||
# define the name of the machine on which the main conserver
|
||||
# daemon will be running if you don't want to use the default
|
||||
|
@ -1,7 +1,7 @@
|
||||
PKG="conserver"
|
||||
NAME="Console server and client"
|
||||
CATEGORY="system"
|
||||
VERSION="7.2.1"
|
||||
VERSION="7.2.2"
|
||||
DESC="Console server and client"
|
||||
CLASSES=none
|
||||
ARCH=sparc
|
||||
|
Loading…
x
Reference in New Issue
Block a user