[7647] in Athena Bugs
patch to athena login.c to help kerberized telnetd
daemon@ATHENA.MIT.EDU (John T Kohl)
Tue Jun 11 13:35:53 1991
Date: Tue, 11 Jun 91 13:35:39 EDT
From: John T Kohl <jtkohl@MIT.EDU>
To: bugs@MIT.EDU
It needs the '-f' flag, to force pre-authenticated logins.
I don't remember offhand why I put in the sg_flags stuff; perhaps the
pty was getting in a confused state otherwise (certainly it's related to
the v4/v5 telnet/telnetd)?
This is relative to RCS rev 1.31 of
/source/athena/bin/login/RCS/login.c,v:
*** login.old.c Tue Jun 11 13:33:25 1991
--- login.c Fri Nov 16 17:56:05 1990
***************
*** 200,206 ****
char *argv[];
{
register char *namep;
! int pflag = 0, hflag = 0, t, f, c;
int invalid, quietlog, forkval;
FILE *nlfd;
char *ttyn, *tty, saltc[2];
--- 200,206 ----
char *argv[];
{
register char *namep;
! int pflag = 0, hflag = 0, fflag = 0, t, f, c;
int invalid, quietlog, forkval;
FILE *nlfd;
char *ttyn, *tty, saltc[2];
***************
*** 281,286 ****
--- 281,292 ----
pflag = 1;
continue;
}
+ if (strcmp(argv[1], "-f") == 0 && getuid() == 0) {
+ argc--;
+ argv++;
+ fflag = 1;
+ continue;
+ }
break;
}
ioctl(0, TIOCLSET, &zero);
***************
*** 297,302 ****
--- 303,310 ----
doremoteterm(term, &ttyb);
ttyb.sg_erase = CERASE;
ttyb.sg_kill = CKILL;
+ ttyb.sg_flags &= ~(RAW|CBREAK);
+ ttyb.sg_flags |= CRMOD|ECHO;
ioctl(0, TIOCSLTC, <c);
ioctl(0, TIOCSETC, &tc);
ioctl(0, TIOCSETP, &ttyb);
***************
*** 362,367 ****
--- 370,377 ----
invalid = TRUE;
continue;
}
+ if (fflag)
+ goto leavethis; /* and let him log in */
}
invalid = FALSE;