svn commit: r201590 - in user/ed/utmpx: . bin/csh bin/date bin/pax contrib/opie/libopie contrib/tcsh contrib/telnet/telnetd crypto/openssh include lib/libc/gen lib/libopie lib/libutil libexec/comsa...

Ed Schouten ed at FreeBSD.org
Tue Jan 5 15:15:16 UTC 2010


Author: ed
Date: Tue Jan  5 15:15:15 2010
New Revision: 201590
URL: http://svn.freebsd.org/changeset/base/201590

Log:
  Add a stub <utmpx.h> implementation and remove <utmp.h>.
  
  The functions in libc are just empty, so right now logging is actually
  broken. The tree should build, but I had to disable some apps that I
  haven't ported to <utmpx.h> yet. TODO.
  
  Also remove login(3), logout(3) and logwtmp(3). libutil doesn't use
  symbol versioning, so I am considering bumping the major number.

Added:
  user/ed/utmpx/include/utmpx.h   (contents, props changed)
  user/ed/utmpx/lib/libc/gen/getutxent.c   (contents, props changed)
Deleted:
  user/ed/utmpx/lib/libutil/login.3
  user/ed/utmpx/lib/libutil/login.c
  user/ed/utmpx/lib/libutil/logout.3
  user/ed/utmpx/lib/libutil/logout.c
  user/ed/utmpx/lib/libutil/logwtmp.3
  user/ed/utmpx/lib/libutil/logwtmp.c
Modified:
  user/ed/utmpx/ObsoleteFiles.inc
  user/ed/utmpx/bin/csh/config.h
  user/ed/utmpx/bin/date/Makefile
  user/ed/utmpx/bin/date/date.c
  user/ed/utmpx/bin/pax/gen_subs.c
  user/ed/utmpx/contrib/opie/libopie/getutmpentry.c
  user/ed/utmpx/contrib/opie/libopie/insecure.c
  user/ed/utmpx/contrib/tcsh/tc.who.c
  user/ed/utmpx/contrib/telnet/telnetd/sys_term.c
  user/ed/utmpx/contrib/telnet/telnetd/telnetd.c
  user/ed/utmpx/crypto/openssh/config.h
  user/ed/utmpx/crypto/openssh/sshd.c
  user/ed/utmpx/include/Makefile
  user/ed/utmpx/include/utmp.h
  user/ed/utmpx/lib/libc/gen/Makefile.inc
  user/ed/utmpx/lib/libc/gen/Symbol.map
  user/ed/utmpx/lib/libopie/Makefile
  user/ed/utmpx/lib/libopie/config.h
  user/ed/utmpx/lib/libutil/Makefile
  user/ed/utmpx/lib/libutil/libutil.h
  user/ed/utmpx/libexec/comsat/comsat.c
  user/ed/utmpx/libexec/ftpd/logwtmp.c
  user/ed/utmpx/libexec/rlogind/Makefile
  user/ed/utmpx/libexec/rlogind/rlogind.c
  user/ed/utmpx/libexec/rpc.rusersd/Makefile
  user/ed/utmpx/libexec/rpc.rusersd/rusers_proc.c
  user/ed/utmpx/libexec/talkd/Makefile
  user/ed/utmpx/libexec/talkd/process.c
  user/ed/utmpx/libexec/telnetd/Makefile
  user/ed/utmpx/sbin/init/init.c
  user/ed/utmpx/sbin/reboot/Makefile
  user/ed/utmpx/sbin/reboot/reboot.c
  user/ed/utmpx/usr.bin/Makefile
  user/ed/utmpx/usr.bin/systat/Makefile
  user/ed/utmpx/usr.bin/systat/vmstat.c
  user/ed/utmpx/usr.bin/users/Makefile
  user/ed/utmpx/usr.bin/users/users.c
  user/ed/utmpx/usr.bin/w/Makefile
  user/ed/utmpx/usr.bin/w/w.c
  user/ed/utmpx/usr.bin/wall/Makefile
  user/ed/utmpx/usr.bin/wall/wall.c
  user/ed/utmpx/usr.bin/who/Makefile
  user/ed/utmpx/usr.bin/who/who.c
  user/ed/utmpx/usr.bin/write/Makefile
  user/ed/utmpx/usr.bin/write/write.c
  user/ed/utmpx/usr.sbin/Makefile
  user/ed/utmpx/usr.sbin/ac/Makefile
  user/ed/utmpx/usr.sbin/ac/ac.c
  user/ed/utmpx/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile
  user/ed/utmpx/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c
  user/ed/utmpx/usr.sbin/rwhod/Makefile
  user/ed/utmpx/usr.sbin/rwhod/rwhod.c
  user/ed/utmpx/usr.sbin/syslogd/Makefile
  user/ed/utmpx/usr.sbin/syslogd/syslogd.c
  user/ed/utmpx/usr.sbin/timed/timed/master.c
  user/ed/utmpx/usr.sbin/timed/timed/slave.c

Modified: user/ed/utmpx/ObsoleteFiles.inc
==============================================================================
--- user/ed/utmpx/ObsoleteFiles.inc	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/ObsoleteFiles.inc	Tue Jan  5 15:15:15 2010	(r201590)
@@ -14,6 +14,10 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20100104: login(3), logout(3) and logwtmp(3) removed
+OLD_FILES+=usr/share/man/man3/login.3.gz
+OLD_FILES+=usr/share/man/man3/logout.3.gz
+OLD_FILES+=usr/share/man/man3/logwtmp.3.gz
 # 20100103: ntptrace(8) removed
 OLD_FILES+=usr/sbin/ntptrace
 OLD_FILES+=usr/share/man/man8/ntptrace.8.gz

Modified: user/ed/utmpx/bin/csh/config.h
==============================================================================
--- user/ed/utmpx/bin/csh/config.h	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/bin/csh/config.h	Tue Jan  5 15:15:15 2010	(r201590)
@@ -130,10 +130,10 @@
 #define HAVE_STRUCT_UTMP_UT_HOST 1
 
 /* Define to 1 if `ut_tv' is member of `struct utmp'. */
-/* #undef HAVE_STRUCT_UTMP_UT_TV */
+#define HAVE_STRUCT_UTMP_UT_TV 1
 
 /* Define to 1 if `ut_user' is member of `struct utmp'. */
-/* #undef HAVE_STRUCT_UTMP_UT_USER */
+#define HAVE_STRUCT_UTMP_UT_USER 1
 
 /* Define to 1 if `ut_xtime' is member of `struct utmp'. */
 /* #undef HAVE_STRUCT_UTMP_UT_XTIME */
@@ -159,10 +159,10 @@
 #define HAVE_UNISTD_H 1
 
 /* Define to 1 if you have the <utmpx.h> header file. */
-/* #undef HAVE_UTMPX_H */
+#define HAVE_UTMPX_H 1
 
 /* Define to 1 if you have the <utmp.h> header file. */
-#define HAVE_UTMP_H 1
+/* #undef HAVE_UTMP_H */
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define HAVE_WCHAR_H 1

Modified: user/ed/utmpx/bin/date/Makefile
==============================================================================
--- user/ed/utmpx/bin/date/Makefile	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/bin/date/Makefile	Tue Jan  5 15:15:15 2010	(r201590)
@@ -3,7 +3,5 @@
 
 PROG=	date
 SRCS=	date.c netdate.c vary.c
-DPADD=	${LIBULOG}
-LDADD=	-lulog
 
 .include <bsd.prog.mk>

Modified: user/ed/utmpx/bin/date/date.c
==============================================================================
--- user/ed/utmpx/bin/date/date.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/bin/date/date.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -52,9 +52,8 @@ __FBSDID("$FreeBSD$");
 #include <stdlib.h>
 #include <string.h>
 #include <syslog.h>
-#define	_ULOG_POSIX_NAMES
-#include <ulog.h>
 #include <unistd.h>
+#include <utmpx.h>
 
 #include "extern.h"
 #include "vary.h"

Modified: user/ed/utmpx/bin/pax/gen_subs.c
==============================================================================
--- user/ed/utmpx/bin/pax/gen_subs.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/bin/pax/gen_subs.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
 #include <langinfo.h>
 #include <stdint.h>
 #include <stdio.h>
-#include <utmp.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
@@ -66,10 +65,6 @@ __FBSDID("$FreeBSD$");
 #define OLDFRMTM	"%b %e  %Y"
 #define CURFRMTD	"%e %b %H:%M"
 #define OLDFRMTD	"%e %b  %Y"
-#ifndef UT_NAMESIZE
-#define UT_NAMESIZE	8
-#endif
-#define UT_GRPSIZE	6
 
 static int d_first = -1;
 
@@ -116,9 +111,8 @@ ls_list(ARCHD *arcn, time_t now, FILE *f
 	 */
 	if (strftime(f_date,DATELEN,timefrmt,localtime(&(sbp->st_mtime))) == 0)
 		f_date[0] = '\0';
-	(void)fprintf(fp, "%s%2u %-*s %-*s ", f_mode, sbp->st_nlink,
-		UT_NAMESIZE, name_uid(sbp->st_uid, 1), UT_GRPSIZE,
-		name_gid(sbp->st_gid, 1));
+	(void)fprintf(fp, "%s%2u %-12s %-12s ", f_mode, sbp->st_nlink,
+		name_uid(sbp->st_uid, 1), name_gid(sbp->st_gid, 1));
 
 	/*
 	 * print device id's for devices, or sizes for other nodes

Modified: user/ed/utmpx/contrib/opie/libopie/getutmpentry.c
==============================================================================
--- user/ed/utmpx/contrib/opie/libopie/getutmpentry.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/contrib/opie/libopie/getutmpentry.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -15,13 +15,14 @@ you didn't get a copy, you may request o
 #include "opie_cfg.h"
 #include <stdio.h>
 #include <sys/types.h>
-#include <utmp.h>
 
 #if DOUTMPX
 #include <utmpx.h>
 #define setutent setutxent
 #define getutline(x) getutxline(x)
 #define utmp utmpx
+#else
+#include <utmp.h>
 #endif /* DOUTMPX */
 
 #if HAVE_STRING_H

Modified: user/ed/utmpx/contrib/opie/libopie/insecure.c
==============================================================================
--- user/ed/utmpx/contrib/opie/libopie/insecure.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/contrib/opie/libopie/insecure.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -39,11 +39,12 @@ $FreeBSD$
 #include <sys/param.h>
 #include <unistd.h>
 
-#include <utmp.h>
 #if DOUTMPX
 #include <utmpx.h>
 #define utmp utmpx
 #define endutent endutxent
+#else
+#include <utmp.h>
 #endif	/* DOUTMPX */
 
 #if HAVE_SYS_UTSNAME_H

Modified: user/ed/utmpx/contrib/tcsh/tc.who.c
==============================================================================
--- user/ed/utmpx/contrib/tcsh/tc.who.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/contrib/tcsh/tc.who.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -55,6 +55,8 @@ RCSID("$tcsh: tc.who.c,v 3.51 2006/03/03
 #  define TCSH_PATH_UTMP _PATH_UTMPX
 # elif defined(UTMPX_FILE)
 #  define TCSH_PATH_UTMP UTMPX_FILE
+# else
+#  define TCSH_PATH_UTMP "/nonexistent"
 # endif /* __UTMPX_FILE && !UTMPX_FILE */
 # ifdef TCSH_PATH_UTMP
 #  define utmp utmpx

Modified: user/ed/utmpx/contrib/telnet/telnetd/sys_term.c
==============================================================================
--- user/ed/utmpx/contrib/telnet/telnetd/sys_term.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/contrib/telnet/telnetd/sys_term.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/tty.h>
 #include <libutil.h>
 #include <stdlib.h>
+#include <ulog.h>
 
 #include "telnetd.h"
 #include "pathnames.h"
@@ -1314,8 +1315,7 @@ cleanup(int sig __unused)
 	 */
 	sigfillset(&mask);
 	sigprocmask(SIG_SETMASK, &mask, NULL);
-	if (logout(p))
-		logwtmp(p, "", "");
+	ulog_logout(p);
 	(void)chmod(line, 0666);
 	(void)chown(line, 0, 0);
 	*p = 'p';

Modified: user/ed/utmpx/contrib/telnet/telnetd/telnetd.c
==============================================================================
--- user/ed/utmpx/contrib/telnet/telnetd/telnetd.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/contrib/telnet/telnetd/telnetd.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -47,7 +47,6 @@ __FBSDID("$FreeBSD$");
 #include <libutil.h>
 #include <paths.h>
 #include <termcap.h>
-#include <utmp.h>
 
 #include <arpa/inet.h>
 
@@ -61,7 +60,6 @@ int	auth_level = 0;
 #include <libtelnet/misc.h>
 
 char	remote_hostname[MAXHOSTNAMELEN];
-size_t	utmp_len = sizeof(remote_hostname) - 1;
 int	registerd_host_only = 0;
 
 
@@ -286,12 +284,6 @@ main(int argc, char *argv[])
 #endif
 			break;
 
-		case 'u':
-			utmp_len = (size_t)atoi(optarg);
-			if (utmp_len >= sizeof(remote_hostname))
-				utmp_len = sizeof(remote_hostname) - 1;
-			break;
-
 		case 'U':
 			registerd_host_only = 1;
 			break;
@@ -661,7 +653,6 @@ terminaltypeok(char *s)
 void
 doit(struct sockaddr *who)
 {
-	int err_; /* XXX */
 	int ptynum;
 
 	/*
@@ -693,13 +684,6 @@ doit(struct sockaddr *who)
 	Please contact your net administrator");
 	remote_hostname[sizeof(remote_hostname) - 1] = '\0';
 
-	trimdomain(remote_hostname, UT_HOSTSIZE);
-	if (!isdigit(remote_hostname[0]) && strlen(remote_hostname) > utmp_len)
-		err_ = getnameinfo(who, who->sa_len, remote_hostname,
-				  sizeof(remote_hostname), NULL, 0,
-				  NI_NUMERICHOST);
-		/* XXX: do 'err_' check */
-
 	(void) gethostname(host_name, sizeof(host_name) - 1);
 	host_name[sizeof(host_name) - 1] = '\0';
 	hostname = host_name;

Modified: user/ed/utmpx/crypto/openssh/config.h
==============================================================================
--- user/ed/utmpx/crypto/openssh/config.h	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/crypto/openssh/config.h	Tue Jan  5 15:15:15 2010	(r201590)
@@ -85,13 +85,13 @@
 /* #undef CONF_UTMPX_FILE */
 
 /* Define if you want to specify the path to your utmp file */
-#define CONF_UTMP_FILE "/var/run/utmp"
+/* #undef CONF_UTMP_FILE */
 
 /* Define if you want to specify the path to your wtmpx file */
 /* #undef CONF_WTMPX_FILE */
 
 /* Define if you want to specify the path to your wtmp file */
-#define CONF_WTMP_FILE "/var/log/wtmp"
+/* #undef CONF_WTMP_FILE */
 
 /* Define if your platform needs to skip post auth file descriptor passing */
 /* #undef DISABLE_FD_PASSING */
@@ -112,13 +112,13 @@
 /* #undef DISABLE_SHADOW */
 
 /* Define if you don't want to use utmp */
-/* #undef DISABLE_UTMP */
+#define DISABLE_UTMP 1
 
 /* Define if you don't want to use utmpx */
-#define DISABLE_UTMPX 1
+/* #undef DISABLE_UTMPX */
 
 /* Define if you don't want to use wtmp */
-/* #undef DISABLE_WTMP */
+#define DISABLE_WTMP 1
 
 /* Define if you don't want to use wtmpx */
 #define DISABLE_WTMPX 1
@@ -319,7 +319,7 @@
 /* #undef HAVE_ENDUTENT */
 
 /* Define to 1 if you have the `endutxent' function. */
-/* #undef HAVE_ENDUTXENT */
+#define HAVE_ENDUTXENT 1
 
 /* Define if your system has /etc/default/login */
 /* #undef HAVE_ETC_DEFAULT_LOGIN */
@@ -445,13 +445,13 @@
 /* #undef HAVE_GETUTLINE */
 
 /* Define to 1 if you have the `getutxent' function. */
-/* #undef HAVE_GETUTXENT */
+#define HAVE_GETUTXENT 1
 
 /* Define to 1 if you have the `getutxid' function. */
 /* #undef HAVE_GETUTXID */
 
 /* Define to 1 if you have the `getutxline' function. */
-/* #undef HAVE_GETUTXLINE */
+#define HAVE_GETUTXLINE 1
 
 /* Define to 1 if you have the `get_default_context_with_level' function. */
 /* #undef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL */
@@ -487,7 +487,7 @@
 #define HAVE_HOST_IN_UTMP 1
 
 /* Define if you have ut_host in utmpx.h */
-/* #undef HAVE_HOST_IN_UTMPX */
+#define HAVE_HOST_IN_UTMPX 1
 
 /* Define to 1 if you have the <iaf.h> header file. */
 /* #undef HAVE_IAF_H */
@@ -499,7 +499,7 @@
 /* #undef HAVE_ID_IN_UTMP */
 
 /* Define if you have ut_id in utmpx.h */
-/* #undef HAVE_ID_IN_UTMPX */
+#define HAVE_ID_IN_UTMPX 1
 
 /* Define to 1 if you have the `inet_aton' function. */
 #define HAVE_INET_ATON 1
@@ -574,7 +574,7 @@
 /* #undef HAVE_LINUX_IF_TUN_H */
 
 /* Define if your libraries define login() */
-#define HAVE_LOGIN 1
+/* #undef HAVE_LOGIN */
 
 /* Define to 1 if you have the <login_cap.h> header file. */
 #define HAVE_LOGIN_CAP_H 1
@@ -704,7 +704,7 @@
 /* #undef HAVE_PUTUTLINE */
 
 /* Define to 1 if you have the `pututxline' function. */
-/* #undef HAVE_PUTUTXLINE */
+#define HAVE_PUTUTXLINE 1
 
 /* Define if your password has a pw_change field */
 #define HAVE_PW_CHANGE_IN_PASSWD 1
@@ -800,7 +800,7 @@
 /* #undef HAVE_SETUTENT */
 
 /* Define to 1 if you have the `setutxent' function. */
-/* #undef HAVE_SETUTXENT */
+#define HAVE_SETUTXENT 1
 
 /* Define to 1 if you have the `setvbuf' function. */
 #define HAVE_SETVBUF 1
@@ -1043,7 +1043,7 @@
 /* #undef HAVE_TV_IN_UTMP */
 
 /* Define if you have ut_tv in utmpx.h */
-/* #undef HAVE_TV_IN_UTMPX */
+#define HAVE_TV_IN_UTMPX 1
 
 /* Define if you have ut_type in utmp.h */
 /* #undef HAVE_TYPE_IN_UTMP */
@@ -1091,10 +1091,10 @@
 /* #undef HAVE_UTMPXNAME */
 
 /* Define to 1 if you have the <utmpx.h> header file. */
-/* #undef HAVE_UTMPX_H */
+#define HAVE_UTMPX_H 1
 
 /* Define to 1 if you have the <utmp.h> header file. */
-#define HAVE_UTMP_H 1
+/* #undef HAVE_UTMP_H */
 
 /* define if you have u_char data type */
 #define HAVE_U_CHAR 1
@@ -1175,7 +1175,7 @@
 /* #undef KRB5 */
 
 /* Define if pututxline updates lastlog too */
-/* #undef LASTLOG_WRITE_PUTUTXLINE */
+#define LASTLOG_WRITE_PUTUTXLINE 1
 
 /* Define if you want TCP Wrappers support */
 #define LIBWRAP 1

Modified: user/ed/utmpx/crypto/openssh/sshd.c
==============================================================================
--- user/ed/utmpx/crypto/openssh/sshd.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/crypto/openssh/sshd.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -73,7 +73,6 @@ __RCSID("$FreeBSD$");
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <utmp.h>
 
 #include <openssl/dh.h>
 #include <openssl/bn.h>
@@ -240,7 +239,7 @@ u_char *session_id2 = NULL;
 u_int session_id2_len = 0;
 
 /* record remote hostname or ip */
-u_int utmp_len = UT_HOSTSIZE;
+u_int utmp_len = MAXHOSTNAMELEN;
 
 /* options.max_startup sized array of fd ints */
 int *startup_pipes = NULL;

Modified: user/ed/utmpx/include/Makefile
==============================================================================
--- user/ed/utmpx/include/Makefile	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/include/Makefile	Tue Jan  5 15:15:15 2010	(r201590)
@@ -23,8 +23,8 @@ INCS=	a.out.h ar.h assert.h bitstring.h 
 	stdbool.h stddef.h stdio.h stdlib.h string.h stringlist.h \
 	strings.h sysexits.h tar.h termios.h tgmath.h \
 	time.h timeconv.h timers.h ttyent.h \
-	ulimit.h unistd.h utime.h utmp.h uuid.h varargs.h vis.h wchar.h \
-	wctype.h wordexp.h
+	ulimit.h unistd.h utime.h utmp.h utmpx.h uuid.h varargs.h vis.h \
+	wchar.h wctype.h wordexp.h
 
 MHDRS=	float.h floatingpoint.h stdarg.h
 

Modified: user/ed/utmpx/include/utmp.h
==============================================================================
--- user/ed/utmpx/include/utmp.h	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/include/utmp.h	Tue Jan  5 15:15:15 2010	(r201590)
@@ -1,73 +1,2 @@
-/*
- * Copyright (c) 1988, 1993
- *	The Regents of the University of California.  All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)utmp.h	8.2 (Berkeley) 1/21/94
- * $FreeBSD$
- */
-
-#ifndef	_UTMP_H_
-#define	_UTMP_H_
-
-#define	_PATH_UTMP	"/var/run/utmp"
-#define	_PATH_WTMP	"/var/log/wtmp"
-#define	_PATH_LASTLOG	"/var/log/lastlog"
-
-/*
- * XXX: These values are too low, but cannot be changed without breaking
- * the file format.  Right now pts(4) is limited to 1000 instances,
- * because /dev/pts/1000 would require UT_LINESIZE to be bigger.
- * UT_HOSTSIZE is also too small to hold most common hostnames or IPv6
- * addresses.
- */
-#define	UT_NAMESIZE	16	/* see MAXLOGNAME in <sys/param.h> */
-#define	UT_LINESIZE	8
-#define	UT_HOSTSIZE	16
-
-struct lastlog {
-	int32_t	ll_time;
-	char	ll_line[UT_LINESIZE];
-	char	ll_host[UT_HOSTSIZE];
-};
-
-struct utmp {
-	char	ut_line[UT_LINESIZE];
-	char	ut_name[UT_NAMESIZE];
-	char	ut_host[UT_HOSTSIZE];
-	int32_t	ut_time;
-};
-
-#endif /* !_UTMP_H_ */
+/* $FreeBSD$ */
+#error "<utmp.h> has been replaced by <utmpx.h>"

Added: user/ed/utmpx/include/utmpx.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ed/utmpx/include/utmpx.h	Tue Jan  5 15:15:15 2010	(r201590)
@@ -0,0 +1,71 @@
+/*-
+ * Copyright (c) 2010 Ed Schouten <ed at FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _UTMPX_H_
+#define	_UTMPX_H_
+
+#include <sys/cdefs.h>
+#include <sys/_timeval.h>
+#include <sys/_types.h>
+
+#ifndef _PID_T_DECLARED
+typedef	__pid_t		pid_t;
+#define	_PID_T_DECLARED
+#endif
+
+struct utmpx {
+	char		ut_user[32];
+	char		ut_id[8];
+	char		ut_line[32];
+	char		ut_host[256];
+	pid_t		ut_pid;
+	short		ut_type;
+#define	EMPTY		0
+#define	BOOT_TIME	1
+#define	OLD_TIME	2
+#define	NEW_TIME	3
+#define	USER_PROCESS	4
+#define	INIT_PROCESS	5
+#define	LOGIN_PROCESS	6
+#define	DEAD_PROCESS	7
+#if __BSD_VISIBLE
+#define	SHUTDOWN_TIME	8
+#endif
+	struct timeval	ut_tv;
+};
+
+__BEGIN_DECLS
+void	endutxent(void);
+struct utmpx *getutxent(void);
+struct utmpx *getutxid(const struct utmpx *);
+struct utmpx *getutxline(const struct utmpx *);
+struct utmpx *pututxline(const struct utmpx *);
+void	setutxent(void);
+__END_DECLS
+
+#endif /* !_UTMPX_H_ */

Modified: user/ed/utmpx/lib/libc/gen/Makefile.inc
==============================================================================
--- user/ed/utmpx/lib/libc/gen/Makefile.inc	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/lib/libc/gen/Makefile.inc	Tue Jan  5 15:15:15 2010	(r201590)
@@ -18,7 +18,7 @@ SRCS+=  __getosreldate.c __xuname.c \
 	gethostname.c getloadavg.c getlogin.c getmntinfo.c getnetgrent.c \
 	getosreldate.c getpagesize.c getpagesizes.c \
 	getpeereid.c getprogname.c getpwent.c getttyent.c \
-	getusershell.c getvfsbyname.c glob.c \
+	getutxent.c getusershell.c getvfsbyname.c glob.c \
 	initgroups.c isatty.c isinf.c isnan.c jrand48.c lcong48.c \
 	lockf.c lrand48.c mrand48.c nftw.c nice.c \
 	nlist.c nrand48.c opendir.c \

Modified: user/ed/utmpx/lib/libc/gen/Symbol.map
==============================================================================
--- user/ed/utmpx/lib/libc/gen/Symbol.map	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/lib/libc/gen/Symbol.map	Tue Jan  5 15:15:15 2010	(r201590)
@@ -367,7 +367,13 @@ FBSD_1.1 {
 
 FBSD_1.2 {
 	basename_r;
+	endutxent;
 	getpagesizes;
+	getutxent;
+	getutxid;
+	getutxline;
+	pututxline;
+	setutxent;
 };
 
 FBSDprivate_1.0 {

Added: user/ed/utmpx/lib/libc/gen/getutxent.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/ed/utmpx/lib/libc/gen/getutxent.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -0,0 +1,71 @@
+/*-
+ * Copyright (c) 2010 Ed Schouten <ed at FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <stdio.h>
+#include <utmpx.h>
+
+void
+endutxent(void)
+{
+}
+
+struct utmpx *
+getutxent(void)
+{
+
+	return (NULL);
+}
+
+struct utmpx *
+getutxid(const struct utmpx *id)
+{
+
+	return (NULL);
+}
+
+struct utmpx *
+getutxline(const struct utmpx *line)
+{
+
+	return (NULL);
+}
+
+struct utmpx *
+pututxline(const struct utmpx *utmpx)
+{
+
+	return (NULL);
+}
+
+void
+setutxent(void)
+{
+}

Modified: user/ed/utmpx/lib/libopie/Makefile
==============================================================================
--- user/ed/utmpx/lib/libopie/Makefile	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/lib/libopie/Makefile	Tue Jan  5 15:15:15 2010	(r201590)
@@ -8,15 +8,14 @@ SHLIB_MAJOR=    6
 
 KEYFILE?=	\"/etc/opiekeys\"
 
-.PATH: ${DIST_DIR} ${OPIE_DIST}/libmissing
+.PATH: ${DIST_DIR}
 
 LIB=	opie
 SRCS=	atob8.c btoa8.c btoh.c challenge.c getsequence.c hash.c hashlen.c \
 	keycrunch.c lock.c lookup.c newseed.c parsechallenge.c passcheck.c \
 	passwd.c randomchallenge.c readpass.c unlock.c verify.c version.c \
 	btoe.c accessfile.c generator.c insecure.c getutmpentry.c \
-	readrec.c writerec.c open.c \
-	getutline.c pututline.c endutent.c setutent.c # from libmissing
+	readrec.c writerec.c open.c
 SRCS+=	opieextra.c
 INCS=	${OPIE_DIST}/opie.h
 

Modified: user/ed/utmpx/lib/libopie/config.h
==============================================================================
--- user/ed/utmpx/lib/libopie/config.h	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/lib/libopie/config.h	Tue Jan  5 15:15:15 2010	(r201590)
@@ -216,7 +216,7 @@
 #define HAVE_GETUSERSHELL 1
 
 /* Define if you have the getutxline function.  */
-/* #undef HAVE_GETUTXLINE */
+#define HAVE_GETUTXLINE 1
 
 /* Define if you have the getwd function.  */
 /* #undef HAVE_GETWD */
@@ -231,7 +231,7 @@
 /* #undef HAVE_ON_EXIT */
 
 /* Define if you have the pututxline function.  */
-/* #undef HAVE_PUTUTXLINE */
+#define HAVE_PUTUTXLINE 1
 
 /* Define if you have the rindex function.  */
 /* #undef HAVE_RINDEX */
@@ -366,7 +366,7 @@
 #define HAVE_UNISTD_H 1
 
 /* Define if you have the <utmpx.h> header file.  */
-/* #undef HAVE_UTMPX_H */
+#define HAVE_UTMPX_H 1
 
 /* Define if you have the crypt library (-lcrypt).  */
 #define HAVE_LIBCRYPT 1

Modified: user/ed/utmpx/lib/libutil/Makefile
==============================================================================
--- user/ed/utmpx/lib/libutil/Makefile	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/lib/libutil/Makefile	Tue Jan  5 15:15:15 2010	(r201590)
@@ -10,9 +10,9 @@ SHLIB_MAJOR= 8
 
 SRCS=	_secure_path.c auth.c expand_number.c flopen.c fparseln.c gr_util.c \
 	hexdump.c humanize_number.c kinfo_getfile.c kinfo_getvmmap.c kld.c \
-	login.c login_auth.c login_cap.c \
+	login_auth.c login_cap.c \
 	login_class.c login_crypt.c login_ok.c login_times.c login_tty.c \
-	logout.c logwtmp.c pidfile.c property.c pty.c pw_util.c realhostname.c \
+	pidfile.c property.c pty.c pw_util.c realhostname.c \
 	stub.c trimdomain.c uucplock.c
 INCS=	libutil.h login_cap.h
 
@@ -24,7 +24,7 @@ CFLAGS+= -DINET6
 
 CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../libc/gen/
 
-MAN+=	kld.3 login.3 login_auth.3 login_tty.3 logout.3 logwtmp.3 pty.3 \
+MAN+=	kld.3 login_auth.3 login_tty.3 pty.3 \
 	login_cap.3 login_class.3 login_times.3 login_ok.3 \
 	_secure_path.3 uucplock.3 property.3 auth.3 realhostname.3 \
 	realhostname_sa.3 trimdomain.3 fparseln.3 humanize_number.3 \

Modified: user/ed/utmpx/lib/libutil/libutil.h
==============================================================================
--- user/ed/utmpx/lib/libutil/libutil.h	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/lib/libutil/libutil.h	Tue Jan  5 15:15:15 2010	(r201590)
@@ -90,7 +90,6 @@ struct pidfh {
 /* Avoid pulling in all the include files for no need */
 struct termios;
 struct winsize;
-struct utmp;
 struct in_addr;
 struct kinfo_file;
 struct kinfo_vmentry;
@@ -102,10 +101,7 @@ int	extattr_namespace_to_string(int _att
 int	extattr_string_to_namespace(const char *_string, int *_attrnamespace);
 int	flopen(const char *_path, int _flags, ...);
 void	hexdump(const void *ptr, int length, const char *hdr, int flags);
-void	login(struct utmp *_ut);
 int	login_tty(int _fd);
-int	logout(const char *_line);
-void	logwtmp(const char *_line, const char *_name, const char *_host);
 void	trimdomain(char *_fullhost, int _hostsize);
 int	openpty(int *_amaster, int *_aslave, char *_name,
 		     struct termios *_termp, struct winsize *_winp);

Modified: user/ed/utmpx/libexec/comsat/comsat.c
==============================================================================
--- user/ed/utmpx/libexec/comsat/comsat.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/libexec/comsat/comsat.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -66,7 +66,7 @@ static const char rcsid[] =
 #include <string.h>
 #include <syslog.h>
 #include <unistd.h>
-#include <utmp.h>
+#include <utmpx.h>
 
 int	debug = 0;
 #define	dsyslog	if (debug) syslog
@@ -74,14 +74,10 @@ int	debug = 0;
 #define MAXIDLE	120
 
 char	hostname[MAXHOSTNAMELEN];
-struct	utmp *utmp = NULL;
-time_t	lastmsgtime;
-int	nutmp, uf;
 
 void jkfprintf(FILE *, char[], char[], off_t);
 void mailfor(char *);
-void notify(struct utmp *, char[], off_t, int);
-void onalrm(int);
+void notify(struct utmpx *, char[], off_t, int);
 void reapchildren(int);
 
 int
@@ -102,15 +98,7 @@ main(int argc __unused, char *argv[] __u
 		(void) recv(0, msgbuf, sizeof(msgbuf) - 1, 0);
 		exit(1);
 	}
-	if ((uf = open(_PATH_UTMP, O_RDONLY, 0)) < 0) {
-		syslog(LOG_ERR, "open: %s: %m", _PATH_UTMP);
-		(void) recv(0, msgbuf, sizeof(msgbuf) - 1, 0);
-		exit(1);
-	}
-	(void)time(&lastmsgtime);
 	(void)gethostname(hostname, sizeof(hostname));
-	onalrm(0);
-	(void)signal(SIGALRM, onalrm);
 	(void)signal(SIGTTOU, SIG_IGN);
 	(void)signal(SIGCHLD, reapchildren);
 	for (;;) {
@@ -121,11 +109,7 @@ main(int argc __unused, char *argv[] __u
 			errno = 0;
 			continue;
 		}
-		if (!nutmp)		/* no one has logged in yet */
-			continue;
-		sigblock(sigmask(SIGALRM));
 		msgbuf[cc] = '\0';
-		(void)time(&lastmsgtime);
 		mailfor(msgbuf);
 		sigsetmask(0L);
 	}
@@ -138,40 +122,15 @@ reapchildren(int signo __unused)
 }
 
 void
-onalrm(int signo __unused)
-{
-	static off_t utmpsize;		/* last malloced size for utmp */
-	static time_t utmpmtime;	/* last modification time for utmp */
-	struct stat statbf;
-
-	if (time(NULL) - lastmsgtime >= MAXIDLE)
-		exit(0);
-	(void)alarm((u_int)15);
-	(void)fstat(uf, &statbf);
-	if (statbf.st_mtime > utmpmtime) {
-		utmpmtime = statbf.st_mtime;
-		if (statbf.st_size > utmpsize) {
-			utmpsize = statbf.st_size + 10 * sizeof(struct utmp);
-			if ((utmp = realloc(utmp, utmpsize)) == NULL) {
-				syslog(LOG_ERR, "%s", strerror(errno));
-				exit(1);
-			}
-		}
-		(void)lseek(uf, (off_t)0, SEEK_SET);
-		nutmp = read(uf, utmp, (size_t)statbf.st_size)/sizeof(struct utmp);
-	}
-}
-
-void
 mailfor(char *name)
 {
-	struct utmp *utp = &utmp[nutmp];
+	struct utmpx *utp;
 	char *cp;
 	char *file;
 	off_t offset;
 	int folder;
-	char buf[sizeof(_PATH_MAILDIR) + sizeof(utmp[0].ut_name) + 1];
-	char buf2[sizeof(_PATH_MAILDIR) + sizeof(utmp[0].ut_name) + 1];
+	char buf[sizeof(_PATH_MAILDIR) + sizeof(utp->ut_user) + 1];
+	char buf2[sizeof(_PATH_MAILDIR) + sizeof(utp->ut_user) + 1];
 
 	if (!(cp = strchr(name, '@')))
 		return;
@@ -181,33 +140,35 @@ mailfor(char *name)
 		file = name;
 	else
 		file = cp + 1;
-	sprintf(buf, "%s/%.*s", _PATH_MAILDIR, (int)sizeof(utmp[0].ut_name),
+	sprintf(buf, "%s/%.*s", _PATH_MAILDIR, (int)sizeof(utp->ut_user),
 	    name);
 	if (*file != '/') {
 		sprintf(buf2, "%s/%.*s", _PATH_MAILDIR,
-		    (int)sizeof(utmp[0].ut_name), file);
+		    (int)sizeof(utp->ut_user), file);
 		file = buf2;
 	}
 	folder = strcmp(buf, file);
-	while (--utp >= utmp)
-		if (!strncmp(utp->ut_name, name, sizeof(utmp[0].ut_name)))
+	setutxent();
+	while ((utp = getutxent()) != NULL)
+		if (utp->ut_type == USER_PROCESS && !strcmp(utp->ut_user, name))
 			notify(utp, file, offset, folder);
+	endutxent();
 }
 
 static const char *cr;
 
 void
-notify(struct utmp *utp, char file[], off_t offset, int folder)
+notify(struct utmpx *utp, char file[], off_t offset, int folder)
 {
 	FILE *tp;
 	struct stat stb;
 	struct termios tio;
-	char tty[20], name[sizeof(utmp[0].ut_name) + 1];
-	const char *line = utp->ut_line;
+	char tty[20];
+	const char *s = utp->ut_line;
 
-	if (strncmp(line, "pts/", 4) == 0)
-		line += 4;
-	if (strchr(line, '/')) {
+	if (strncmp(s, "pts/", 4) == 0)
+		s += 4;
+	if (strchr(s, '/')) {
 		/* A slash is an attempt to break security... */
 		syslog(LOG_AUTH | LOG_NOTICE, "Unexpected `/' in `%s'",
 		    utp->ut_line);
@@ -216,10 +177,10 @@ notify(struct utmp *utp, char file[], of
 	(void)snprintf(tty, sizeof(tty), "%s%.*s",
 	    _PATH_DEV, (int)sizeof(utp->ut_line), utp->ut_line);
 	if (stat(tty, &stb) == -1 || !(stb.st_mode & (S_IXUSR | S_IXGRP))) {
-		dsyslog(LOG_DEBUG, "%s: wrong mode on %s", utp->ut_name, tty);
+		dsyslog(LOG_DEBUG, "%s: wrong mode on %s", utp->ut_user, tty);
 		return;
 	}
-	dsyslog(LOG_DEBUG, "notify %s on %s\n", utp->ut_name, tty);
+	dsyslog(LOG_DEBUG, "notify %s on %s\n", utp->ut_user, tty);
 	switch (fork()) {
 	case -1:
 		syslog(LOG_NOTICE, "fork failed (%m)");
@@ -229,25 +190,21 @@ notify(struct utmp *utp, char file[], of
 	default:
 		return;
 	}
-	(void)signal(SIGALRM, SIG_DFL);
-	(void)alarm((u_int)30);
 	if ((tp = fopen(tty, "w")) == NULL) {
 		dsyslog(LOG_ERR, "%s: %s", tty, strerror(errno));
 		_exit(1);
 	}
 	(void)tcgetattr(fileno(tp), &tio);
 	cr = ((tio.c_oflag & (OPOST|ONLCR)) == (OPOST|ONLCR)) ?  "\n" : "\n\r";
-	(void)strncpy(name, utp->ut_name, sizeof(utp->ut_name));
-	name[sizeof(name) - 1] = '\0';
 	switch (stb.st_mode & (S_IXUSR | S_IXGRP)) {
 	case S_IXUSR:
 	case (S_IXUSR | S_IXGRP):
 		(void)fprintf(tp, 
 		    "%s\007New mail for %s@%.*s\007 has arrived%s%s%s:%s----%s",
-		    cr, name, (int)sizeof(hostname), hostname,
+		    cr, utp->ut_user, (int)sizeof(hostname), hostname,
 		    folder ? cr : "", folder ? "to " : "", folder ? file : "",
 		    cr, cr);
-		jkfprintf(tp, name, file, offset);
+		jkfprintf(tp, utp->ut_user, file, offset);
 		break;
 	case S_IXGRP:
 		(void)fprintf(tp, "\007");

Modified: user/ed/utmpx/libexec/ftpd/logwtmp.c
==============================================================================
--- user/ed/utmpx/libexec/ftpd/logwtmp.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/libexec/ftpd/logwtmp.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -50,14 +50,18 @@ __FBSDID("$FreeBSD$");
 #include <time.h>
 #include <timeconv.h>
 #include <netdb.h>
+#if 0
 #include <utmp.h>
+#endif
 #include <unistd.h>
 #include <stdio.h>
 #include <string.h>
 #include <libutil.h>
 #include "extern.h"
 
+#if 0
 static int fd = -1;
+#endif
 
 /*
  * Modified version of logwtmp that holds wtmp file open
@@ -69,6 +73,7 @@ ftpd_logwtmp(line, name, addr)
 	char *line, *name;
 	struct sockaddr *addr;
 {
+#if 0
 	struct utmp ut;
 	struct stat buf;
 	char host[UT_HOSTSIZE];
@@ -89,4 +94,5 @@ ftpd_logwtmp(line, name, addr)
 		    sizeof(struct utmp))
 			(void)ftruncate(fd, buf.st_size);
 	}
+#endif
 }

Modified: user/ed/utmpx/libexec/rlogind/Makefile
==============================================================================
--- user/ed/utmpx/libexec/rlogind/Makefile	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/libexec/rlogind/Makefile	Tue Jan  5 15:15:15 2010	(r201590)
@@ -5,8 +5,8 @@
 
 PROG=	rlogind
 MAN=	rlogind.8
-DPADD=	${LIBUTIL}
-LDADD=	-lutil
+DPADD=	${LIBULOG} ${LIBUTIL}
+LDADD=	-lulog -lutil
 WARNS?=	2
 
 .if ${MK_INET6_SUPPORT} != "no"

Modified: user/ed/utmpx/libexec/rlogind/rlogind.c
==============================================================================
--- user/ed/utmpx/libexec/rlogind/rlogind.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/libexec/rlogind/rlogind.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -85,6 +85,7 @@ __FBSDID("$FreeBSD$");
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <ulog.h>
 #include <unistd.h>
 
 
@@ -482,8 +483,7 @@ cleanup(int signo)
 	char *p;
 
 	p = line + sizeof(_PATH_DEV) - 1;
-	if (logout(p))
-		logwtmp(p, "", "");
+	ulog_logout(p);
 	(void)chflags(line, 0);
 	(void)chmod(line, 0666);
 	(void)chown(line, 0, 0);

Modified: user/ed/utmpx/libexec/rpc.rusersd/Makefile
==============================================================================
--- user/ed/utmpx/libexec/rpc.rusersd/Makefile	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/libexec/rpc.rusersd/Makefile	Tue Jan  5 15:15:15 2010	(r201590)
@@ -4,8 +4,8 @@ PROG =	rpc.rusersd
 SRCS =	rusersd.c rusers_proc.c
 MAN =	rpc.rusersd.8
 
-DPADD=	${LIBRPCSVC} ${LIBULOG} ${LIBUTIL}
-LDADD=	-lrpcsvc -lulog -lutil
+DPADD=	${LIBRPCSVC} ${LIBUTIL}
+LDADD=	-lrpcsvc -lutil
 
 #.if exists(/usr/X11R6/include/X11/extensions/xidle.h)
 #CFLAGS+= -DXIDLE

Modified: user/ed/utmpx/libexec/rpc.rusersd/rusers_proc.c
==============================================================================
--- user/ed/utmpx/libexec/rpc.rusersd/rusers_proc.c	Tue Jan  5 15:04:08 2010	(r201589)
+++ user/ed/utmpx/libexec/rpc.rusersd/rusers_proc.c	Tue Jan  5 15:15:15 2010	(r201590)
@@ -45,8 +45,7 @@ static const char rcsid[] =
 #include <sys/stat.h>

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-user mailing list