svn commit: r202004 - in user/ed/utmpx: contrib/telnet/telnetd libexec/rlogind libexec/telnetd

Ed Schouten ed at FreeBSD.org
Sun Jan 10 15:18:17 UTC 2010


Author: ed
Date: Sun Jan 10 15:18:16 2010
New Revision: 202004
URL: http://svn.freebsd.org/changeset/base/202004

Log:
  Massively simplify the shutdown code of telnetd/rlogind.
  
  ulog_logout() has no effect here, since we now use ut_id as identifiers
  instead of ut_lines. If phantom records really turn out to be a problem,
  we should just use getutxline() and call pututxline() for each entry
  returned.
  
  There is also no need to chown/chmod the pseudo-terminal devices,
  because they are garbage-collected automatically.

Modified:
  user/ed/utmpx/contrib/telnet/telnetd/sys_term.c
  user/ed/utmpx/libexec/rlogind/Makefile
  user/ed/utmpx/libexec/rlogind/rlogind.c
  user/ed/utmpx/libexec/telnetd/Makefile

Modified: user/ed/utmpx/contrib/telnet/telnetd/sys_term.c
==============================================================================
--- user/ed/utmpx/contrib/telnet/telnetd/sys_term.c	Sun Jan 10 15:12:15 2010	(r202003)
+++ user/ed/utmpx/contrib/telnet/telnetd/sys_term.c	Sun Jan 10 15:18:16 2010	(r202004)
@@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/tty.h>
 #include <libutil.h>
 #include <stdlib.h>
-#include <ulog.h>
 
 #include "telnetd.h"
 #include "pathnames.h"
@@ -1304,23 +1303,7 @@ scrub_env(void)
 void
 cleanup(int sig __unused)
 {
-	char *p;
-	sigset_t mask;
 
-	p = line + sizeof(_PATH_DEV) - 1;
-	/*
-	 * Block all signals before clearing the utmp entry.  We don't want to
-	 * be called again after calling logout() and then not add the wtmp
-	 * entry because of not finding the corresponding entry in utmp.
-	 */
-	sigfillset(&mask);
-	sigprocmask(SIG_SETMASK, &mask, NULL);
-	ulog_logout(p);
-	(void)chmod(line, 0666);
-	(void)chown(line, 0, 0);
-	*p = 'p';
-	(void)chmod(line, 0666);
-	(void)chown(line, 0, 0);
-	(void) shutdown(net, 2);
+	(void) shutdown(net, SHUT_RDWR);
 	_exit(1);
 }

Modified: user/ed/utmpx/libexec/rlogind/Makefile
==============================================================================
--- user/ed/utmpx/libexec/rlogind/Makefile	Sun Jan 10 15:12:15 2010	(r202003)
+++ user/ed/utmpx/libexec/rlogind/Makefile	Sun Jan 10 15:18:16 2010	(r202004)
@@ -5,8 +5,8 @@
 
 PROG=	rlogind
 MAN=	rlogind.8
-DPADD=	${LIBULOG} ${LIBUTIL}
-LDADD=	-lulog -lutil
+DPADD=	${LIBUTIL}
+LDADD=	-lutil
 WARNS?=	2
 
 .if ${MK_INET6_SUPPORT} != "no"

Modified: user/ed/utmpx/libexec/rlogind/rlogind.c
==============================================================================
--- user/ed/utmpx/libexec/rlogind/rlogind.c	Sun Jan 10 15:12:15 2010	(r202003)
+++ user/ed/utmpx/libexec/rlogind/rlogind.c	Sun Jan 10 15:18:16 2010	(r202004)
@@ -85,7 +85,6 @@ __FBSDID("$FreeBSD$");
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <ulog.h>
 #include <unistd.h>
 
 
@@ -480,17 +479,7 @@ protocol(int f, int p)
 void
 cleanup(int signo)
 {
-	char *p;
 
-	p = line + sizeof(_PATH_DEV) - 1;
-	ulog_logout(p);
-	(void)chflags(line, 0);
-	(void)chmod(line, 0666);
-	(void)chown(line, 0, 0);
-	*p = 'p';
-	(void)chflags(line, 0);
-	(void)chmod(line, 0666);
-	(void)chown(line, 0, 0);
 	shutdown(netf, SHUT_RDWR);
 	exit(1);
 }

Modified: user/ed/utmpx/libexec/telnetd/Makefile
==============================================================================
--- user/ed/utmpx/libexec/telnetd/Makefile	Sun Jan 10 15:12:15 2010	(r202003)
+++ user/ed/utmpx/libexec/telnetd/Makefile	Sun Jan 10 15:18:16 2010	(r202004)
@@ -28,8 +28,8 @@ CFLAGS+=	-I${TELNETDIR}
 
 LIBTELNET=	${.OBJDIR}/../../lib/libtelnet/libtelnet.a
 
-DPADD=		${LIBULOG} ${LIBUTIL} ${LIBTERMCAP} ${LIBTELNET}
-LDADD=		-lulog -lutil -ltermcap ${LIBTELNET}
+DPADD=		${LIBUTIL} ${LIBTERMCAP} ${LIBTELNET}
+LDADD=		-lutil -ltermcap ${LIBTELNET}
 
 # XXX for src/release/picobsd
 .if !defined(RELEASE_CRUNCH)


More information about the svn-src-user mailing list