From 3efb267b2d0460d387d210a1d6df7eb0f8842e73 Mon Sep 17 00:00:00 2001 From: markm Date: Wed, 29 Aug 2001 14:16:17 +0000 Subject: [PATCH] Manually unifdef(1) CRAY, UNICOS, hpux and sun uselsess code. git-svn-id: http://svn0.us-east.freebsd.org/base/head/contrib/telnet@82497 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- telnet/commands.c | 37 ---- telnet/externs.h | 11 +- telnet/main.c | 3 - telnet/sys_bsd.c | 2 +- telnetd/defs.h | 40 +--- telnetd/ext.h | 18 -- telnetd/state.c | 18 -- telnetd/sys_term.c | 505 +-------------------------------------------- telnetd/telnetd.8 | 25 --- telnetd/telnetd.c | 248 ---------------------- telnetd/termstat.c | 36 ---- 11 files changed, 7 insertions(+), 936 deletions(-) diff --git a/telnet/commands.c b/telnet/commands.c index 15cc503..33c2bba 100644 --- a/telnet/commands.c +++ b/telnet/commands.c @@ -40,18 +40,12 @@ static const char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95"; #if defined(unix) #include #include -#if defined(CRAY) || defined(sysV88) -#include -#endif #include #else #include #endif /* defined(unix) */ #include #include -#ifdef CRAY -#include -#endif /* CRAY */ #include #include @@ -81,12 +75,10 @@ static const char sccsid[] = "@(#)commands.c 8.4 (Berkeley) 5/30/95"; #include #endif -#if !defined(CRAY) && !defined(sysV88) #include # if (defined(vax) || defined(tahoe) || defined(hp300)) && !defined(ultrix) # include # endif /* vax */ -#endif /* !defined(CRAY) && !defined(sysV88) */ #include #include @@ -936,35 +928,6 @@ static struct setlist Setlist[] = { { 0 } }; -#if defined(CRAY) && !defined(__STDC__) -/* Work around compiler bug in pcc 4.1.5 */ - void -_setlist_init() -{ -#ifndef KLUDGELINEMODE -#define N 5 -#else -#define N 6 -#endif - Setlist[N+0].charp = &termFlushChar; - Setlist[N+1].charp = &termIntChar; - Setlist[N+2].charp = &termQuitChar; - Setlist[N+3].charp = &termEofChar; - Setlist[N+6].charp = &termEraseChar; - Setlist[N+7].charp = &termKillChar; - Setlist[N+8].charp = &termLiteralNextChar; - Setlist[N+9].charp = &termSuspChar; - Setlist[N+10].charp = &termRprntChar; - Setlist[N+11].charp = &termWerasChar; - Setlist[N+12].charp = &termStartChar; - Setlist[N+13].charp = &termStopChar; - Setlist[N+14].charp = &termForw1Char; - Setlist[N+15].charp = &termForw2Char; - Setlist[N+16].charp = &termAytChar; -#undef N -} -#endif /* defined(CRAY) && !defined(__STDC__) */ - static struct setlist * getset(name) char *name; diff --git a/telnet/externs.h b/telnet/externs.h index d6fc5c9..e117dd2 100644 --- a/telnet/externs.h +++ b/telnet/externs.h @@ -53,17 +53,12 @@ #include #include -#if defined(CRAY) && !defined(NO_BSD_SETJMP) -#include -#endif #ifndef FILIO_H #include #else #include #endif -#ifdef CRAY # include -#endif /* CRAY */ #ifdef USE_TERMIO # ifndef VINTR # ifdef SYSV_TERMIO @@ -109,10 +104,6 @@ extern char *ipsec_policy_out; #define SUBBUFSIZE 256 -#ifndef CRAY -extern int errno; /* outside this world */ -#endif /* !CRAY */ - #if !defined(P) # ifdef __STDC__ # define P(x) x @@ -432,7 +423,7 @@ extern cc_t termAytChar; # define termAytChar new_tc.c_cc[VSTATUS] #endif -# if !defined(CRAY) || defined(__STDC__) +# if defined(__STDC__) # define termEofCharp &termEofChar # define termEraseCharp &termEraseChar # define termIntCharp &termIntChar diff --git a/telnet/main.c b/telnet/main.c index 2f74f40..b9f9c93 100644 --- a/telnet/main.c +++ b/telnet/main.c @@ -148,9 +148,6 @@ main(argc, argv) #endif /* FORWARD */ tninit(); /* Clear out things */ -#if defined(CRAY) && !defined(__STDC__) - _setlist_init(); /* Work around compiler bug */ -#endif TerminalSaveState(); diff --git a/telnet/sys_bsd.c b/telnet/sys_bsd.c index ac93ea8..7935821 100644 --- a/telnet/sys_bsd.c +++ b/telnet/sys_bsd.c @@ -63,7 +63,7 @@ static const char rcsid[] = #include "externs.h" #include "types.h" -#if defined(CRAY) || (defined(USE_TERMIO) && !defined(SYSV_TERMIO)) +#if defined(USE_TERMIO) && !defined(SYSV_TERMIO) #define SIG_FUNC_RET void #else #define SIG_FUNC_RET int diff --git a/telnetd/defs.h b/telnetd/defs.h index a73d4a6..d727f36 100644 --- a/telnetd/defs.h +++ b/telnetd/defs.h @@ -31,6 +31,7 @@ * SUCH DAMAGE. * * @(#)defs.h 8.1 (Berkeley) 6/4/93 + * $FreeBSD$ */ /* @@ -43,23 +44,6 @@ # define BSD 43 #endif -#if defined(CRAY) && !defined(LINEMODE) -# define SYSV_TERMIO -# define LINEMODE -# define KLUDGELINEMODE -# define DIAGNOSTICS -# if defined(UNICOS50) && !defined(UNICOS5) -# define UNICOS5 -# endif -# if !defined(UNICOS5) -# define BFTPDAEMON -# define HAS_IP_TOS -# endif -#endif /* CRAY */ -#if defined(UNICOS5) && !defined(NO_SETSID) -# define NO_SETSID -#endif - #if defined(PRINTOPTIONS) && defined(DIAGNOSTICS) #define TELOPTS #define TELCMDS @@ -71,9 +55,7 @@ #endif #include -#ifndef CRAY #include -#endif /* CRAY */ #include #include #include @@ -134,22 +116,6 @@ typedef unsigned char cc_t; # endif #endif - -#ifdef CRAY -# ifdef CRAY1 -# include -# ifndef FD_ZERO -# include -# endif /* FD_ZERO */ -# endif /* CRAY1 */ - -#include -#endif /* CRAY */ - -#ifdef __hpux -#include -#endif - #if !defined(TIOCSCTTY) && defined(TCSETCTTY) # define TIOCSCTTY TCSETCTTY #endif @@ -169,10 +135,6 @@ typedef struct fd_set { int fds_bits[1]; } fd_set; * I/O data buffers defines */ #define NETSLOP 64 -#ifdef CRAY -#undef BUFSIZ -#define BUFSIZ 2048 -#endif #define NIACCUM(c) { *netip++ = c; \ ncc++; \ diff --git a/telnetd/ext.h b/telnetd/ext.h index 1492f82..9b53c7c 100644 --- a/telnetd/ext.h +++ b/telnetd/ext.h @@ -79,11 +79,6 @@ extern char *neturg; /* one past last bye of urgent data */ extern int pcc, ncc; -#if defined(CRAY2) && defined(UNICOS5) -extern int unpcc; /* characters left unprocessed by CRAY-2 terminal routine */ -extern char *unptyip; /* pointer to remaining characters in buffer */ -#endif - extern int pty, net; extern char line[16]; extern int SYNCHing; /* we are in TELNET SYNCH mode */ @@ -219,18 +214,7 @@ extern struct { gotDM; /* when did we last see a data mark */ } clocks; - -#if defined(CRAY2) && defined(UNICOS5) -extern int needtermstat; -#endif - #ifndef DEFAULT_IM -# ifdef CRAY -# define DEFAULT_IM "\r\n\r\nCray UNICOS (%h) (%t)\r\n\r\r\n\r" -# else -# ifdef sun -# define DEFAULT_IM "\r\n\r\nSunOS UNIX (%h) (%t)\r\n\r\r\n\r" -# else # ifdef ultrix # define DEFAULT_IM "\r\n\r\nULTRIX (%h) (%t)\r\n\r\r\n\r" # else @@ -240,6 +224,4 @@ extern int needtermstat; # define DEFAULT_IM "\r\n\r\n4.4 BSD UNIX (%h) (%t)\r\n\r\r\n\r" # endif # endif -# endif -# endif #endif diff --git a/telnetd/state.c b/telnetd/state.c index 6d7ca94..57ade2f 100644 --- a/telnetd/state.c +++ b/telnetd/state.c @@ -94,9 +94,6 @@ telrcv() { register int c; static int state = TS_DATA; -#if defined(CRAY2) && defined(UNICOS5) - char *opfrontp = pfrontp; -#endif while (ncc > 0) { if ((&ptyobuf[BUFSIZ] - pfrontp) < 2) @@ -367,21 +364,6 @@ gotiac: switch (c) { exit(1); } } -#if defined(CRAY2) && defined(UNICOS5) - if (!linemode) { - char xptyobuf[BUFSIZ+NETSLOP]; - char xbuf2[BUFSIZ]; - register char *cp; - int n = pfrontp - opfrontp, oc; - memmove(xptyobuf, opfrontp, n); - pfrontp = opfrontp; - pfrontp += term_input(xptyobuf, pfrontp, n, BUFSIZ+NETSLOP, - xbuf2, &oc, BUFSIZ); - for (cp = xbuf2; oc > 0; --oc) - if ((*nfrontp++ = *cp++) == IAC) - *nfrontp++ = IAC; - } -#endif /* defined(CRAY2) && defined(UNICOS5) */ } /* end of telrcv */ /* diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c index 16e16c4..2b5dfa5 100644 --- a/telnetd/sys_term.c +++ b/telnetd/sys_term.c @@ -50,10 +50,6 @@ extern char *altlogin; int cleanopen(char *line); void scrub_env(void); -#if defined(CRAY) || defined(__hpux) -# define PARENT_DOES_UTMP -#endif - #ifdef NEWINIT #include #else /* NEWINIT*/ @@ -82,20 +78,6 @@ char wtmpf[] = "/etc/wtmp"; #include -# ifdef CRAY -#include -#include -# if (UNICOS_LVL == '7.0') || (UNICOS_LVL == '7.1') -# define UNICOS7x -# endif - -# ifdef UNICOS7x -#include -#include -extern int secflag; -extern struct sysv sysv; -# endif /* UNICOS7x */ -# endif /* CRAY */ #endif /* NEWINIT */ #ifdef STREAMSPTY @@ -109,10 +91,6 @@ extern struct sysv sysv; #ifdef STREAMS #include #endif -#ifdef __hpux -#include -#include -#endif #include #ifdef t_erase #undef t_erase @@ -131,10 +109,6 @@ extern struct sysv sysv; #undef t_lnextc #endif -#if defined(UNICOS5) && defined(CRAY2) && !defined(EXTPROC) -# define EXTPROC 0400 -#endif - #ifndef USE_TERMIO struct termbuf { struct sgttyb sg; @@ -262,9 +236,6 @@ set_termbuf() # else (void) tcsetattr(pty, TCSANOW, &termbuf); # endif -# if defined(CRAY2) && defined(UNICOS5) - needtermstat = 1; -# endif #endif /* USE_TERMIO */ } @@ -452,26 +423,6 @@ spcset(func, valp, valpp) } #endif /* USE_TERMIO */ -#ifdef CRAY -/* - * getnpty() - * - * Return the number of pty's configured into the system. - */ - int -getnpty() -{ -#ifdef _SC_CRAY_NPTY - int numptys; - - if ((numptys = sysconf(_SC_CRAY_NPTY)) != -1) - return numptys; - else -#endif /* _SC_CRAY_NPTY */ - return 128; -} -#endif /* CRAY */ - #ifndef convex /* * getpty() @@ -481,11 +432,7 @@ getnpty() * * Returns the file descriptor of the opened pty. */ -#ifdef CRAY -char myline[16]; -#else char line[16]; -#endif /* CRAY */ int getpty(ptynum) @@ -505,23 +452,13 @@ int *ptynum; } #else /* ! STREAMSPTY */ -#ifndef CRAY register char *cp, *p1, *p2; register int i; -#if defined(sun) && defined(TIOCGPGRP) && BSD < 199207 - int dummy; -#endif -#ifndef __hpux (void) strcpy(line, _PATH_DEV); (void) strcat(line, "ptyXX"); p1 = &line[8]; p2 = &line[9]; -#else - (void) strcpy(line, "/dev/ptym/ptyXX"); - p1 = &line[13]; - p2 = &line[14]; -#endif for (cp = "pqrsPQRS"; *cp; cp++) { struct stat stb; @@ -539,64 +476,13 @@ int *ptynum; *p2 = "0123456789abcdefghijklmnopqrstuv"[i]; p = open(line, 2); if (p > 0) { -#ifndef __hpux line[5] = 't'; -#else - for (p1 = &line[8]; *p1; p1++) - *p1 = *(p1+1); - line[9] = 't'; -#endif chown(line, 0, 0); chmod(line, 0600); -#if defined(sun) && defined(TIOCGPGRP) && BSD < 199207 - if (ioctl(p, TIOCGPGRP, &dummy) == 0 - || errno != EIO) { - chmod(line, 0666); - close(p); - line[5] = 'p'; - } else -#endif /* defined(sun) && defined(TIOCGPGRP) && BSD < 199207 */ return(p); } } } -#else /* CRAY */ - extern lowpty, highpty; - struct stat sb; - - for (*ptynum = lowpty; *ptynum <= highpty; (*ptynum)++) { - (void) sprintf(myline, "%spty/%03d", _PATH_DEV, *ptynum); - p = open(myline, 2); - if (p < 0) - continue; - (void) sprintf(line, "%sp%03d", _PATH_TTY, *ptynum); - /* - * Here are some shenanigans to make sure that there - * are no listeners lurking on the line. - */ - if(stat(line, &sb) < 0) { - (void) close(p); - continue; - } - if(sb.st_uid || sb.st_gid || sb.st_mode != 0600) { - chown(line, 0, 0); - chmod(line, 0600); - (void)close(p); - p = open(myline, 2); - if (p < 0) - continue; - } - /* - * Now it should be safe...check for accessability. - */ - if (access(line, 6) == 0) - return(p); - else { - /* no tty side to pty so skip it */ - (void) close(p); - } - } -#endif /* CRAY */ #endif /* STREAMSPTY */ return(-1); } @@ -1042,15 +928,6 @@ tty_rspeed(val) #endif /* DECODE_BAUD */ } -#if defined(CRAY2) && defined(UNICOS5) - int -tty_isnewmap() -{ - return((termbuf.c_oflag & OPOST) && (termbuf.c_oflag & ONLCR) && - !(termbuf.c_oflag & ONLRET)); -} -#endif - #ifdef PARENT_DOES_UTMP # ifndef NEWINIT extern struct utmp wtmp; @@ -1089,7 +966,6 @@ getptyslave() register int t = -1; char erase; -#if !defined(CRAY) || !defined(NEWINIT) # ifdef LINEMODE int waslm; # endif @@ -1170,22 +1046,12 @@ getptyslave() termbuf.sg.sg_flags |= CRMOD|ANYP|ECHO|XTABS; # endif /* USE_TERMIO */ - /* - * Settings for UNICOS (and HPUX) - */ -# if defined(CRAY) || defined(__hpux) - termbuf.c_oflag = OPOST|ONLCR|TAB3; - termbuf.c_iflag = IGNPAR|ISTRIP|ICRNL|IXON; - termbuf.c_lflag = ISIG|ICANON|ECHO|ECHOE|ECHOK; - termbuf.c_cflag = EXTB|HUPCL|CS8; -# endif - /* * Settings for all other termios/termio based * systems, other than 4.4BSD. In 4.4BSD the * kernel does the initial terminal setup. */ -# if defined(USE_TERMIO) && !(defined(CRAY) || defined(__hpux)) && (BSD <= 43) +# if defined(USE_TERMIO) && (BSD <= 43) # ifndef OXTABS # define OXTABS 0 # endif @@ -1193,7 +1059,7 @@ getptyslave() termbuf.c_oflag |= ONLCR|OXTABS; termbuf.c_iflag |= ICRNL; termbuf.c_iflag &= ~IXOFF; -# endif /* defined(USE_TERMIO) && !defined(CRAY) && (BSD <= 43) */ +# endif /* defined(USE_TERMIO) && (BSD <= 43) */ tty_rspeed((def_rspeed > 0) ? def_rspeed : 9600); tty_tspeed((def_tspeed > 0) ? def_tspeed : 9600); if (erase) @@ -1209,7 +1075,6 @@ getptyslave() set_termbuf(); if (login_tty(t) == -1) fatalperror(net, "login_tty"); -#endif /* !defined(CRAY) || !defined(NEWINIT) */ if (net > 2) (void) close(net); #if defined(AUTHENTICATION) && defined(NO_LOGIN_F) && defined(LOGIN_R) @@ -1225,7 +1090,6 @@ getptyslave() #endif } -#if !defined(CRAY) || !defined(NEWINIT) #ifndef O_NOCTTY #define O_NOCTTY 0 #endif @@ -1238,9 +1102,6 @@ cleanopen(line) char *line; { register int t; -#ifdef UNICOS7x - struct secstat secbuf; -#endif /* UNICOS7x */ #ifndef STREAMSPTY /* @@ -1251,31 +1112,10 @@ cleanopen(line) (void) chmod(line, 0600); #endif -# if !defined(CRAY) && (BSD > 43) (void) revoke(line); -# endif -#ifdef UNICOS7x - if (secflag) { - if (secstat(line, &secbuf) < 0) - return(-1); - if (setulvl(secbuf.st_slevel) < 0) - return(-1); - if (setucmp(secbuf.st_compart) < 0) - return(-1); - } -#endif /* UNICOS7x */ t = open(line, O_RDWR|O_NOCTTY); -#ifdef UNICOS7x - if (secflag) { - if (setulvl(sysv.sy_minlvl) < 0) - return(-1); - if (setucmp(0) < 0) - return(-1); - } -#endif /* UNICOS7x */ - if (t < 0) return(-1); @@ -1283,7 +1123,7 @@ cleanopen(line) * Hangup anybody else using this ttyp, then reopen it for * ourselves. */ -# if !(defined(CRAY) || defined(__hpux)) && (BSD <= 43) && !defined(STREAMSPTY) +# if (BSD <= 43) && !defined(STREAMSPTY) (void) signal(SIGHUP, SIG_IGN); vhangup(); (void) signal(SIGHUP, SIG_DFL); @@ -1291,45 +1131,8 @@ cleanopen(line) if (t < 0) return(-1); # endif -# if defined(CRAY) && defined(TCVHUP) - { - register int i; - (void) signal(SIGHUP, SIG_IGN); - (void) ioctl(t, TCVHUP, (char *)0); - (void) signal(SIGHUP, SIG_DFL); - setpgrp(); - -#ifdef UNICOS7x - if (secflag) { - if (secstat(line, &secbuf) < 0) - return(-1); - if (setulvl(secbuf.st_slevel) < 0) - return(-1); - if (setucmp(secbuf.st_compart) < 0) - return(-1); - } -#endif /* UNICOS7x */ - - i = open(line, O_RDWR); - -#ifdef UNICOS7x - if (secflag) { - if (setulvl(sysv.sy_minlvl) < 0) - return(-1); - if (setucmp(0) < 0) - return(-1); - } -#endif /* UNICOS7x */ - - if (i < 0) - return(-1); - (void) close(t); - t = i; - } -# endif /* defined(CRAY) && defined(TCVHUP) */ return(t); } -#endif /* !defined(CRAY) || !defined(NEWINIT) */ #if BSD <= 43 @@ -1351,15 +1154,6 @@ login_tty(t) # ifdef TIOCSCTTY if (ioctl(t, TIOCSCTTY, (char *)0) < 0) fatalperror(net, "ioctl(sctty)"); -# if defined(CRAY) - /* - * Close the hard fd to /dev/ttypXXX, and re-open through - * the indirect /dev/tty interface. - */ - close(t); - if ((t = open(_PATH_TTY, O_RDWR)) < 0) - fatalperror(net, "open(/dev/tty)"); -# endif # else /* * We get our controlling tty assigned as a side-effect @@ -1368,11 +1162,7 @@ login_tty(t) * setsid() call above may have set our pgrp, so clear * it out before opening the tty... */ -# ifndef SOLARIS (void) setpgrp(0, 0); -# else - (void) setpgrp(); -# endif close(open(line, O_RDWR)); # endif if (t != 0) @@ -1451,20 +1241,13 @@ startslave(host, autologin, autoname) SCPYN(wtmp.ut_user, "LOGIN"); SCPYN(wtmp.ut_host, host); SCPYN(wtmp.ut_line, line + sizeof(_PATH_DEV) - 1); -#ifndef __hpux SCPYN(wtmp.ut_id, wtmp.ut_line+3); -#else - SCPYN(wtmp.ut_id, wtmp.ut_line+7); -#endif pututline(&wtmp); endutent(); if ((i = open(wtmpf, O_WRONLY|O_APPEND)) >= 0) { (void) write(i, (char *)&wtmp, sizeof(struct utmp)); (void) close(i); } -#ifdef CRAY - (void) signal(WJSIGNAL, sigjob); -#endif utmp_sig_notify(pid); # endif /* PARENT_DOES_UTMP */ } else { @@ -1489,10 +1272,8 @@ startslave(host, autologin, autoname) SCPYN(request.tty_id, &line[8]); SCPYN(request.host, host); SCPYN(request.term_type, terminaltype ? terminaltype : "network"); -#if !defined(UNICOS5) request.signal = SIGCLD; request.pid = getpid(); -#endif #ifdef BFTPDAEMON /* * Are we working as the bftp daemon? @@ -1540,10 +1321,6 @@ init_env() envp = envinit; if ((*envp = getenv("TZ"))) *envp++ -= 3; -#if defined(CRAY) || defined(__hpux) - else - *envp++ = "TZ=GMT0"; -#endif *envp = 0; environ = envinit; } @@ -1919,61 +1696,9 @@ cleanup(sig) (void) shutdown(net, 2); exit(1); # else /* NEWINIT */ -# ifdef CRAY - static int incleanup = 0; - register int t; - int child_status; /* status of child process as returned by waitpid */ - int flags = WNOHANG|WUNTRACED; - - /* - * 1: Pick up the zombie, if we are being called - * as the signal handler. - * 2: If we are a nested cleanup(), return. - * 3: Try to clean up TMPDIR. - * 4: Fill in utmp with shutdown of process. - * 5: Close down the network and pty connections. - * 6: Finish up the TMPDIR cleanup, if needed. - */ - if (sig == SIGCHLD) { - while (waitpid(-1, &child_status, flags) > 0) - ; /* VOID */ - /* Check if the child process was stopped - * rather than exited. We want cleanup only if - * the child has died. - */ - if (WIFSTOPPED(child_status)) { - return; - } - } - t = sigblock(sigmask(SIGCHLD)); - if (incleanup) { - sigsetmask(t); - return; - } - incleanup = 1; - sigsetmask(t); -#ifdef UNICOS7x - if (secflag) { - /* - * We need to set ourselves back to a null - * label to clean up. - */ - - setulvl(sysv.sy_minlvl); - setucmp((long)0); - } -#endif /* UNICOS7x */ - - t = cleantmp(&wtmp); - setutent(); /* just to make sure */ -# endif /* CRAY */ rmut(line); close(pty); (void) shutdown(net, 2); -# ifdef CRAY - if (t == 0) - cleantmp(&wtmp); -# endif /* CRAY */ exit(1); # endif /* NEWINT */ #endif /* PARENT_DOES_UTMP */ @@ -2017,11 +1742,6 @@ utmp_sig_reset() (void) signal(SIGUSR1, func); /* reset handler to default */ } -# ifdef __hpux -# define sigoff() /* do nothing */ -# define sigon() /* do nothing */ -# endif - void utmp_sig_wait() { @@ -2042,184 +1762,6 @@ utmp_sig_notify(pid) kill(pid, SIGUSR1); } -# ifdef CRAY -static int gotsigjob = 0; - - /*ARGSUSED*/ - void -sigjob(sig) - int sig; -{ - register int jid; - register struct jobtemp *jp; - - while ((jid = waitjob(NULL)) != -1) { - if (jid == 0) { - return; - } - gotsigjob++; - jobend(jid, NULL, NULL); - } -} - -/* - * jid_getutid: - * called by jobend() before calling cleantmp() - * to find the correct $TMPDIR to cleanup. - */ - - struct utmp * -jid_getutid(jid) - int jid; -{ - struct utmp *cur = NULL; - - setutent(); /* just to make sure */ - while (cur = getutent()) { - if ( (cur->ut_type != NULL) && (jid == cur->ut_jid) ) { - return(cur); - } - } - - return(0); -} - -/* - * Clean up the TMPDIR that login created. - * The first time this is called we pick up the info - * from the utmp. If the job has already gone away, - * then we'll clean up and be done. If not, then - * when this is called the second time it will wait - * for the signal that the job is done. - */ - int -cleantmp(wtp) - register struct utmp *wtp; -{ - struct utmp *utp; - static int first = 1; - register int mask, omask, ret; - extern struct utmp *getutid P((const struct utmp *_Id)); - - - mask = sigmask(WJSIGNAL); - - if (first == 0) { - omask = sigblock(mask); - while (gotsigjob == 0) - sigpause(omask); - return(1); - } - first = 0; - setutent(); /* just to make sure */ - - utp = getutid(wtp); - if (utp == 0) { - syslog(LOG_ERR, "can't get /etc/utmp entry to clean TMPDIR"); - return(-1); - } - /* - * Nothing to clean up if the user shell was never started. - */ - if (utp->ut_type != USER_PROCESS || utp->ut_jid == 0) - return(1); - - /* - * Block the WJSIGNAL while we are in jobend(). - */ - omask = sigblock(mask); - ret = jobend(utp->ut_jid, utp->ut_tpath, utp->ut_user); - sigsetmask(omask); - return(ret); -} - - int -jobend(jid, path, user) - register int jid; - register char *path; - register char *user; -{ - static int saved_jid = 0; - static int pty_saved_jid = 0; - static char saved_path[sizeof(wtmp.ut_tpath)+1]; - static char saved_user[sizeof(wtmp.ut_user)+1]; - - /* - * this little piece of code comes into play - * only when ptyreconnect is used to reconnect - * to an previous session. - * - * this is the only time when the - * "saved_jid != jid" code is executed. - */ - - if ( saved_jid && saved_jid != jid ) { - if (!path) { /* called from signal handler */ - pty_saved_jid = jid; - } else { - pty_saved_jid = saved_jid; - } - } - - if (path) { - strncpy(saved_path, path, sizeof(wtmp.ut_tpath)); - strncpy(saved_user, user, sizeof(wtmp.ut_user)); - saved_path[sizeof(saved_path)] = '\0'; - saved_user[sizeof(saved_user)] = '\0'; - } - if (saved_jid == 0) { - saved_jid = jid; - return(0); - } - - /* if the jid has changed, get the correct entry from the utmp file */ - - if ( saved_jid != jid ) { - struct utmp *utp = NULL; - struct utmp *jid_getutid(); - - utp = jid_getutid(pty_saved_jid); - - if (utp == 0) { - syslog(LOG_ERR, "Can't get /etc/utmp entry to clean TMPDIR"); - return(-1); - } - - cleantmpdir(jid, utp->ut_tpath, utp->ut_user); - return(1); - } - - cleantmpdir(jid, saved_path, saved_user); - return(1); -} - -/* - * Fork a child process to clean up the TMPDIR - */ -cleantmpdir(jid, tpath, user) - register int jid; - register char *tpath; - register char *user; -{ - switch(fork()) { - case -1: - syslog(LOG_ERR, "TMPDIR cleanup(%s): fork() failed: %m", - tpath); - break; - case 0: - execl(CLEANTMPCMD, CLEANTMPCMD, user, tpath, (char *)0); - syslog(LOG_ERR, "TMPDIR cleanup(%s): execl(%s) failed: %m", - tpath, CLEANTMPCMD); - exit(1); - default: - /* - * Forget about child. We will exit, and - * /etc/init will pick it up. - */ - break; - } -} -# endif /* CRAY */ #endif /* defined(PARENT_DOES_UTMP) && !defined(NEWINIT) */ /* @@ -2259,7 +1801,7 @@ rmut() } /* end of rmut */ #endif -#if !defined(UTMPX) && !(defined(CRAY) || defined(__hpux)) && BSD <= 43 +#if !defined(UTMPX) && BSD <= 43 void rmut() { @@ -2310,43 +1852,4 @@ rmut() (void) chmod(line, 0666); (void) chown(line, 0, 0); } /* end of rmut */ -#endif /* CRAY */ - -#ifdef __hpux -rmut (line) -char *line; -{ - struct utmp utmp; - struct utmp *utptr; - int fd; /* for /etc/wtmp */ - - utmp.ut_type = USER_PROCESS; - (void) strncpy(utmp.ut_id, line+12, sizeof(utmp.ut_id)); - (void) setutent(); - utptr = getutid(&utmp); - /* write it out only if it exists */ - if (utptr) { - utptr->ut_type = DEAD_PROCESS; - utptr->ut_time = time((long *) 0); - (void) pututline(utptr); - /* set wtmp entry if wtmp file exists */ - if ((fd = open(wtmpf, O_WRONLY | O_APPEND)) >= 0) { - (void) write(fd, utptr, sizeof(utmp)); - (void) close(fd); - } - } - (void) endutent(); - - (void) chmod(line, 0666); - (void) chown(line, 0, 0); - line[14] = line[13]; - line[13] = line[12]; - line[8] = 'm'; - line[9] = '/'; - line[10] = 'p'; - line[11] = 't'; - line[12] = 'y'; - (void) chmod(line, 0666); - (void) chown(line, 0, 0); -} #endif diff --git a/telnetd/telnetd.8 b/telnetd/telnetd.8 index a8e5462..00b444c 100644 --- a/telnetd/telnetd.8 +++ b/telnetd/telnetd.8 @@ -243,29 +243,6 @@ have been idle for some period of time to determine if the client is still there, so that idle connections from machines that have crashed or can no longer be reached may be cleaned up. -.It Fl r Ar lowpty-highpty -This option is only enabled when -.Nm -is compiled for -.Dv UNICOS . -It specifies an inclusive range of pseudo-terminal devices to -use. If the system has sysconf variable -.Dv _SC_CRAY_NPTY -configured, the default pty search range is 0 to -.Dv _SC_CRAY_NPTY ; -otherwise, the default range is 0 to 128. Either -.Ar lowpty -or -.Ar highpty -may be omitted to allow changing -either end of the search range. If -.Ar lowpty -is omitted, the - character is still required so that -.Nm -can differentiate -.Ar highpty -from -.Ar lowpty . .It Fl s This option is only enabled if .Nm @@ -543,8 +520,6 @@ will be displayed to both console and remote logins. .Bl -tag -width /usr/ucb/bftp -compact .It Pa /etc/services .It Pa /etc/gettytab -.It Pa /etc/inittab -(UNICOS systems only) .It Pa /etc/iptos (if supported) .It Pa /usr/ucb/bftp diff --git a/telnetd/telnetd.c b/telnetd/telnetd.c index 0ddb266..f141dd3 100644 --- a/telnetd/telnetd.c +++ b/telnetd/telnetd.c @@ -48,15 +48,6 @@ static const char rcsid[] = #include "telnetd.h" #include "pathnames.h" -#if defined(_SC_CRAY_SECURE_SYS) && !defined(SCM_SECURITY) -/* - * UNICOS 6.0/6.1 do not have SCM_SECURITY defined, so we can - * use it to tell us to turn off all the socket security code, - * since that is only used in UNICOS 7.0 and later. - */ -# undef _SC_CRAY_SECURE_SYS -#endif - #include #include @@ -65,30 +56,6 @@ static const char rcsid[] = #include #include -#if defined(_SC_CRAY_SECURE_SYS) -#include -#include -# ifdef SO_SEC_MULTI /* 8.0 code */ -#include -#include -# endif /* SO_SEC_MULTI */ - -/* wrapper for KAME-special getnameinfo() */ -#ifndef NI_WITHSCOPEID -#define NI_WITHSCOPEID 0 -#endif - -int secflag; -char tty_dev[16]; -struct secdev dv; -struct sysv sysv; -# ifdef SO_SEC_MULTI /* 8.0 code */ -struct socksec ss; -# else /* SO_SEC_MULTI */ /* 7.0 code */ -struct socket_security ss; -# endif /* SO_SEC_MULTI */ -#endif /* _SC_CRAY_SECURE_SYS */ - #if defined(AUTHENTICATION) #include int auth_level = 0; @@ -144,11 +111,6 @@ void startslave(char *host, int autologin, char *autoname); int hostinfo = 1; /* do we print login banner? */ -#ifdef CRAY -extern int newmap; /* nonzero if \n maps to ^M^J */ -int lowpty = 0, highpty; /* low, high pty numbers */ -#endif /* CRAY */ - int debug = 0; int keepalive = 1; char *altlogin; @@ -178,15 +140,9 @@ char valid_opts[] = { #ifdef ENCRYPTION 'e', ':', #endif -#if defined(CRAY) && defined(NEWINIT) - 'I', ':', -#endif #ifdef LINEMODE 'l', #endif -#ifdef CRAY - 'r', ':', -#endif #ifdef SecurID 's', #endif @@ -229,14 +185,6 @@ main(argc, argv) linemode=1; /*Default to mode that works on bulk of clients*/ -#ifdef CRAY - /* - * Get number of pty's before trying to process options, - * which may include changing pty range. - */ - highpty = getnpty(); -#endif /* CRAY */ - while ((ch = getopt(argc, argv, valid_opts)) != -1) { switch(ch) { @@ -320,15 +268,6 @@ main(argc, argv) hostinfo = 0; break; -#if defined(CRAY) && defined(NEWINIT) - case 'I': - { - extern char *gen_id; - gen_id = optarg; - break; - } -#endif /* defined(CRAY) && defined(NEWINIT) */ - #ifdef LINEMODE case 'l': alwayslinemode = 1; @@ -351,34 +290,6 @@ main(argc, argv) altlogin = optarg; break; -#ifdef CRAY - case 'r': - { - char *strchr(); - char *c; - - /* - * Allow the specification of alterations - * to the pty search range. It is legal to - * specify only one, and not change the - * other from its default. - */ - c = strchr(optarg, '-'); - if (c) { - *c++ = '\0'; - highpty = atoi(c); - } - if (*optarg != '\0') - lowpty = atoi(optarg); - if ((lowpty > highpty) || (lowpty < 0) || - (highpty > 32767)) { - usage(); - /* NOT REACHED */ - } - break; - } -#endif /* CRAY */ - #ifdef SecurID case 's': /* SecurID required */ @@ -489,60 +400,6 @@ main(argc, argv) /* NOT REACHED */ } -#if defined(_SC_CRAY_SECURE_SYS) - secflag = sysconf(_SC_CRAY_SECURE_SYS); - - /* - * Get socket's security label - */ - if (secflag) { - int szss = sizeof(ss); -#ifdef SO_SEC_MULTI /* 8.0 code */ - int sock_multi; - int szi = sizeof(int); -#endif /* SO_SEC_MULTI */ - - memset((char *)&dv, 0, sizeof(dv)); - - if (getsysv(&sysv, sizeof(struct sysv)) != 0) - err(1, "getsysv"); - - /* - * Get socket security label and set device values - * {security label to be set on ttyp device} - */ -#ifdef SO_SEC_MULTI /* 8.0 code */ - if ((getsockopt(0, SOL_SOCKET, SO_SECURITY, - (char *)&ss, &szss) < 0) || - (getsockopt(0, SOL_SOCKET, SO_SEC_MULTI, - (char *)&sock_multi, &szi) < 0)) { - err(1, "getsockopt"); - } else { - dv.dv_actlvl = ss.ss_actlabel.lt_level; - dv.dv_actcmp = ss.ss_actlabel.lt_compart; - if (!sock_multi) { - dv.dv_minlvl = dv.dv_maxlvl = dv.dv_actlvl; - dv.dv_valcmp = dv.dv_actcmp; - } else { - dv.dv_minlvl = ss.ss_minlabel.lt_level; - dv.dv_maxlvl = ss.ss_maxlabel.lt_level; - dv.dv_valcmp = ss.ss_maxlabel.lt_compart; - } - dv.dv_devflg = 0; - } -#else /* SO_SEC_MULTI */ /* 7.0 code */ - if (getsockopt(0, SOL_SOCKET, SO_SECURITY, - (char *)&ss, &szss) >= 0) { - dv.dv_actlvl = ss.ss_slevel; - dv.dv_actcmp = ss.ss_compart; - dv.dv_minlvl = ss.ss_minlvl; - dv.dv_maxlvl = ss.ss_maxlvl; - dv.dv_valcmp = ss.ss_maxcmp; - } -#endif /* SO_SEC_MULTI */ - } -#endif /* _SC_CRAY_SECURE_SYS */ - openlog("telnetd", LOG_PID | LOG_ODELAY, LOG_DAEMON); fromlen = sizeof (from); if (getpeername(0, (struct sockaddr *)&from, &fromlen) < 0) { @@ -595,9 +452,6 @@ usage() fprintf(stderr, " [-edebug]"); #endif fprintf(stderr, " [-h]"); -#if defined(CRAY) && defined(NEWINIT) - fprintf(stderr, " [-Iinitid]"); -#endif #if defined(LINEMODE) && defined(KLUDGELINEMODE) fprintf(stderr, " [-k]"); #endif @@ -605,9 +459,6 @@ usage() fprintf(stderr, " [-l]"); #endif fprintf(stderr, " [-n]"); -#ifdef CRAY - fprintf(stderr, " [-r[lowpty]-[highpty]]"); -#endif fprintf(stderr, "\n\t"); #ifdef SecurID fprintf(stderr, " [-s]"); @@ -861,22 +712,6 @@ doit(who) } #endif -#if defined(_SC_CRAY_SECURE_SYS) - /* - * set ttyp line security label - */ - if (secflag) { - char slave_dev[16]; - - sprintf(tty_dev, "%spty/%03d", _PATH_DEV, ptynum); - if (setdevs(tty_dev, &dv) < 0) - fatal(net, "cannot set pty security"); - sprintf(slave_dev, "%sp%03d", _PATH_TTY, ptynum); - if (setdevs(slave_dev, &dv) < 0) - fatal(net, "cannot set tty security"); - } -#endif /* _SC_CRAY_SECURE_SYS */ - /* get name of connected client */ if (realhostname_sa(remote_hostname, sizeof(remote_hostname) - 1, who, who->sa_len) == HOSTNAME_INVALIDADDR && registerd_host_only) @@ -907,35 +742,11 @@ doit(who) level = getterminaltype(user_name); setenv("TERM", terminaltype ? terminaltype : "network", 1); -#if defined(_SC_CRAY_SECURE_SYS) - if (secflag) { - if (setulvl(dv.dv_actlvl) < 0) - fatal(net,"cannot setulvl()"); - if (setucmp(dv.dv_actcmp) < 0) - fatal(net, "cannot setucmp()"); - } -#endif /* _SC_CRAY_SECURE_SYS */ - telnet(net, pty, remote_hostname); /* begin server process */ /*NOTREACHED*/ } /* end of doit */ -#if defined(CRAY2) && defined(UNICOS5) && defined(UNICOS50) - int -Xterm_output(ibufp, obuf, icountp, ocount) - char **ibufp, *obuf; - int *icountp, ocount; -{ - int ret; - ret = term_output(*ibufp, obuf, *icountp, ocount); - *ibufp += *icountp; - *icountp = 0; - return(ret); -} -#define term_output Xterm_output -#endif /* defined(CRAY2) && defined(UNICOS5) && defined(UNICOS50) */ - /* * Main loop. Select from pty and network, and * hand data to telnet receiver finite state machine. @@ -1076,9 +887,6 @@ telnet(f, p, host) (void) ioctl(f, FIONBIO, (char *)&on); (void) ioctl(p, FIONBIO, (char *)&on); -#if defined(CRAY2) && defined(UNICOS5) - init_termdriver(f, p, interrupt, sendbrk); -#endif #if defined(SO_OOBINLINE) (void) setsockopt(net, SOL_SOCKET, SO_OOBINLINE, @@ -1098,21 +906,6 @@ telnet(f, p, host) (void) signal(SIGCHLD, cleanup); -#if defined(CRAY2) && defined(UNICOS5) - /* - * Cray-2 will send a signal when pty modes are changed by slave - * side. Set up signal handler now. - */ - if ((int)signal(SIGUSR1, termstat) < 0) - warn("signal"); - else if (ioctl(p, TCSIGME, (char *)SIGUSR1) < 0) - warn("ioctl:TCSIGME"); - /* - * Make processing loop check terminal characteristics early on. - */ - termstat(); -#endif - #ifdef TIOCNOTTY { register int t; @@ -1124,11 +917,6 @@ telnet(f, p, host) } #endif -#if defined(CRAY) && defined(NEWINIT) && defined(TIOCSCTTY) - (void) setsid(); - ioctl(p, TIOCSCTTY, 0); -#endif - /* * Show banner that getty never gave. * @@ -1137,11 +925,6 @@ telnet(f, p, host) * other pty --> client data. */ -#if !defined(CRAY) || !defined(NEWINIT) - if (getenv("USER")) - hostinfo = 0; -#endif - if (getent(defent, "default") == 1) { char *Getstr(); char *cp=defstrs; @@ -1190,10 +973,6 @@ telnet(f, p, host) if (ncc < 0 && pcc < 0) break; -#if defined(CRAY2) && defined(UNICOS5) - if (needtermstat) - _termstat(); -#endif /* defined(CRAY2) && defined(UNICOS5) */ FD_ZERO(&ibits); FD_ZERO(&obits); FD_ZERO(&xbits); @@ -1329,7 +1108,6 @@ telnet(f, p, host) } else { if (pcc <= 0) break; -#if !defined(CRAY2) || !defined(UNICOS5) #ifdef LINEMODE /* * If ioctl from pty, pass it through net @@ -1375,16 +1153,6 @@ telnet(f, p, host) } pcc--; ptyip = ptyibuf+1; -#else /* defined(CRAY2) && defined(UNICOS5) */ - if (!uselinemode) { - unpcc = pcc; - unptyip = ptyibuf; - pcc = term_output(&unptyip, ptyibuf2, - &unpcc, BUFSIZ); - ptyip = ptyibuf2; - } else - ptyip = ptyibuf; -#endif /* defined(CRAY2) && defined(UNICOS5) */ } } @@ -1394,11 +1162,6 @@ telnet(f, p, host) c = *ptyip++ & 0377, pcc--; if (c == IAC) output_data("%c", c); -#if defined(CRAY2) && defined(UNICOS5) - else if (c == '\n' && - my_state_is_wont(TELOPT_BINARY) && newmap) - output_data("\r"); -#endif /* defined(CRAY2) && defined(UNICOS5) */ output_data("%c", c); if ((c == '\r') && (my_state_is_wont(TELOPT_BINARY))) { if (pcc > 0 && ((*ptyip & 0377) == '\n')) { @@ -1408,17 +1171,6 @@ telnet(f, p, host) output_data("%c", '\0'); } } -#if defined(CRAY2) && defined(UNICOS5) - /* - * If chars were left over from the terminal driver, - * note their existence. - */ - if (!uselinemode && unpcc) { - pcc = unpcc; - unpcc = 0; - ptyip = unptyip; - } -#endif /* defined(CRAY2) && defined(UNICOS5) */ if (FD_ISSET(f, &obits) && (nfrontp - nbackp) > 0) netflush(); diff --git a/telnetd/termstat.c b/telnetd/termstat.c index ae83163..ebfc745 100644 --- a/telnetd/termstat.c +++ b/telnetd/termstat.c @@ -56,10 +56,6 @@ int def_row = 0, def_col = 0; static int _terminit = 0; #endif /* LINEMODE */ -#if defined(CRAY2) && defined(UNICOS5) -int newmap = 1; /* nonzero if \n maps to ^M^J */ -#endif - #ifdef LINEMODE /* * localstat @@ -142,14 +138,6 @@ localstat() { int need_will_echo = 0; -#if defined(CRAY2) && defined(UNICOS5) - /* - * Keep track of that ol' CR/NL mapping while we're in the - * neighborhood. - */ - newmap = tty_isnewmap(); -#endif /* defined(CRAY2) && defined(UNICOS5) */ - /* * Check for changes to flow control if client supports it. */ @@ -588,34 +576,10 @@ clientstat(code, parm1, parm2) break; } /* end of switch */ -#if defined(CRAY2) && defined(UNICOS5) - /* - * Just in case of the likely event that we changed the pty state. - */ - rcv_ioctl(); -#endif /* defined(CRAY2) && defined(UNICOS5) */ - netflush(); } /* end of clientstat */ -#if defined(CRAY2) && defined(UNICOS5) - void -termstat() -{ - needtermstat = 1; -} - - void -_termstat() -{ - needtermstat = 0; - init_termbuf(); - localstat(); - rcv_ioctl(); -} -#endif /* defined(CRAY2) && defined(UNICOS5) */ - #ifdef LINEMODE /* * defer_terminit