[7647] in Athena Bugs

home help back first fref pref prev next nref lref last post

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, &ltc);
      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;

home help back first fref pref prev next nref lref last post