svn commit: r261635 - head/sbin/init

Jilles Tjoelker jilles at FreeBSD.org
Sat Feb 8 13:51:16 UTC 2014


Author: jilles
Date: Sat Feb  8 13:51:15 2014
New Revision: 261635
URL: http://svnweb.freebsd.org/changeset/base/261635

Log:
  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.

Modified:
  head/sbin/init/init.c

Modified: head/sbin/init/init.c
==============================================================================
--- head/sbin/init/init.c	Sat Feb  8 13:37:02 2014	(r261634)
+++ head/sbin/init/init.c	Sat Feb  8 13:51:15 2014	(r261635)
@@ -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 sessio
 
 	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 *
 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();


More information about the svn-src-all mailing list