[5290] in Athena Bugs
deactivation of rloggedinto workstations
daemon@ATHENA.MIT.EDU (Jonathan I. Kamens)
Tue Jun 26 15:33:14 1990
Date: Tue, 26 Jun 90 15:32:56 -0400
From: "Jonathan I. Kamens" <jik@pit-manager.MIT.EDU>
To: jh@ATHENA.MIT.EDU
Cc: bugs@ATHENA.MIT.EDU, jh@ATHENA.MIT.EDU
In-Reply-To: bugs[5166]
Date: Wed, 13 Jun 90 15:00:34 -0400
From: Joe Harrington <jh@ATHENA.MIT.EDU>
Reply-To: jh@ATHENA.MIT.EDU
This isn't technically a bug, but I think it's an error in the
design. Someone logs into a workstation display and sets access_on
so i can rlogin under him. I do. Then he logs out. The
workstation deactivates under me, nuking the password file. Can't
deactivation be contingent on there being no logins? (For that
matter, can activation happen automatically for any login except a
^P login.)
Deactivation *is* contingent on there being no logins. In
particular, here's the section of code from toehold
(/source/athena/etc.athena/toehold.c) that decides whether or not to
deactivate:
/* Gets called WAKE_UP_INTERVAL seconds after xterm exits */
/* or after no key is hit */
/* Runs cleanup daemon if no users are logged in */
void wait_alarm()
{
struct utmp utmp;
int file;
int deact = 1;
if((file = open(utmpf, O_RDONLY, 0)) >= 0) {
while(read(file, (char *) &utmp, sizeof(utmp)) > 0) {
if(*utmp.ut_name) {
deact = 0;
break;
}
}
close(file);
if (deact)
deactivate_workstation();
}
/* Here if someone's logged in or we can't open utmp */
/* If we don't have an X, restart toehold */
if(!wpid) {
die(0);
}
}
If you can reliably reproduce a situation in which you are logged into
a workstation remotely, and it still deactivates, please let us know
and we'll try to figure out what's going on.
Jonathan Kamens
Project Athena Quality Assurance