init: Remove code to track line numbers in /etc/ttys.
The tracking generated warnings when the line number of an existing tty in /etc/ttys changed, which would corrupt utmp (as it was indexed by the line number). With utmpx, the line number no longer matters, so the tracking is no longer needed.
This commit is contained in:
parent
7e700c30d2
commit
0b57dd6bde
@ -143,7 +143,6 @@ static const char *get_shell(void);
|
||||
static void write_stderr(const char *message);
|
||||
|
||||
typedef struct init_session {
|
||||
int se_index; /* index of entry in ttys file */
|
||||
pid_t se_process; /* controlling process */
|
||||
time_t se_started; /* used to avoid thrashing */
|
||||
int se_flags; /* status of session */
|
||||
@ -163,7 +162,7 @@ typedef struct init_session {
|
||||
} session_t;
|
||||
|
||||
static void free_session(session_t *);
|
||||
static session_t *new_session(session_t *, int, struct ttyent *);
|
||||
static session_t *new_session(session_t *, struct ttyent *);
|
||||
static session_t *sessions;
|
||||
|
||||
static char **construct_argv(char *);
|
||||
@ -1005,7 +1004,7 @@ free_session(session_t *sp)
|
||||
* Mark it SE_PRESENT.
|
||||
*/
|
||||
static session_t *
|
||||
new_session(session_t *sprev, int session_index, struct ttyent *typ)
|
||||
new_session(session_t *sprev, struct ttyent *typ)
|
||||
{
|
||||
session_t *sp;
|
||||
int fd;
|
||||
@ -1017,7 +1016,6 @@ new_session(session_t *sprev, int session_index, struct ttyent *typ)
|
||||
|
||||
sp = (session_t *) calloc(1, sizeof (session_t));
|
||||
|
||||
sp->se_index = session_index;
|
||||
sp->se_flags |= SE_PRESENT;
|
||||
|
||||
sp->se_device = malloc(sizeof(_PATH_DEV) + strlen(typ->ty_name));
|
||||
@ -1107,7 +1105,6 @@ setupargv(session_t *sp, struct ttyent *typ)
|
||||
static state_func_t
|
||||
read_ttys(void)
|
||||
{
|
||||
int session_index = 0;
|
||||
session_t *sp, *snext;
|
||||
struct ttyent *typ;
|
||||
|
||||
@ -1128,7 +1125,7 @@ read_ttys(void)
|
||||
* Note that sp starts at 0.
|
||||
*/
|
||||
while ((typ = getttyent()) != NULL)
|
||||
if ((snext = new_session(sp, ++session_index, typ)) != NULL)
|
||||
if ((snext = new_session(sp, typ)) != NULL)
|
||||
sp = snext;
|
||||
|
||||
endttyent();
|
||||
@ -1380,7 +1377,6 @@ clean_ttys(void)
|
||||
{
|
||||
session_t *sp, *sprev;
|
||||
struct ttyent *typ;
|
||||
int session_index = 0;
|
||||
int devlen;
|
||||
char *old_getty, *old_window, *old_type;
|
||||
|
||||
@ -1394,8 +1390,6 @@ clean_ttys(void)
|
||||
|
||||
devlen = sizeof(_PATH_DEV) - 1;
|
||||
while ((typ = getttyent()) != NULL) {
|
||||
++session_index;
|
||||
|
||||
for (sprev = 0, sp = sessions; sp; sprev = sp, sp = sp->se_next)
|
||||
if (strcmp(typ->ty_name, sp->se_device + devlen) == 0)
|
||||
break;
|
||||
@ -1403,12 +1397,6 @@ clean_ttys(void)
|
||||
if (sp) {
|
||||
/* we want this one to live */
|
||||
sp->se_flags |= SE_PRESENT;
|
||||
if (sp->se_index != session_index) {
|
||||
warning("port %s changed utmp index from %d to %d",
|
||||
sp->se_device, sp->se_index,
|
||||
session_index);
|
||||
sp->se_index = session_index;
|
||||
}
|
||||
if ((typ->ty_status & TTY_ON) == 0 ||
|
||||
typ->ty_getty == 0) {
|
||||
sp->se_flags |= SE_SHUTDOWN;
|
||||
@ -1448,7 +1436,7 @@ clean_ttys(void)
|
||||
continue;
|
||||
}
|
||||
|
||||
new_session(sprev, session_index, typ);
|
||||
new_session(sprev, typ);
|
||||
}
|
||||
|
||||
endttyent();
|
||||
|
Loading…
Reference in New Issue
Block a user