aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2010-01-13 17:58:49 +0000
committerEd Schouten <ed@FreeBSD.org>2010-01-13 17:58:49 +0000
commitbb6c7612069af02cd5e6f5659e26912ffa461aae (patch)
tree7ea888f572b39bd76f68a122880443ab7e09ee75
parent759dba8c5a92bcc1b9335e0a13e3ac23ed80bc1a (diff)
downloadsrc-bb6c7612069af02cd5e6f5659e26912ffa461aae.tar.gz
src-bb6c7612069af02cd5e6f5659e26912ffa461aae.zip
Migrate init(8) towards utmpx.
According to a comment, we cannot safely remove utmpx entries here anymore. This is because the libc routines may block on file locking. In an ideal world login(1) should just remove the entries, which is why I'm disabling this code for now. If it turns out we get lots of stale entries here, we should figure out a way to deal with that.
Notes
Notes: svn path=/head/; revision=202194
-rw-r--r--sbin/init/Makefile4
-rw-r--r--sbin/init/init.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/sbin/init/Makefile b/sbin/init/Makefile
index 7778c714a51e..7497a4b54fd7 100644
--- a/sbin/init/Makefile
+++ b/sbin/init/Makefile
@@ -6,8 +6,8 @@ MAN= init.8
PRECIOUSPROG=
INSTALLFLAGS=-b -B.bak
CFLAGS+=-DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT
-DPADD= ${LIBUTIL} ${LIBULOG} ${LIBCRYPT}
-LDADD= -lutil -lulog -lcrypt
+DPADD= ${LIBUTIL} ${LIBCRYPT}
+LDADD= -lutil -lcrypt
NO_SHARED?= YES
diff --git a/sbin/init/init.c b/sbin/init/init.c
index 58e673968899..e808f19aaddb 100644
--- a/sbin/init/init.c
+++ b/sbin/init/init.c
@@ -65,9 +65,9 @@ static const char rcsid[] =
#include <syslog.h>
#include <time.h>
#include <ttyent.h>
-#define _ULOG_POSIX_NAMES
#include <ulog.h>
#include <unistd.h>
+#include <utmpx.h>
#include <sys/reboot.h>
#include <err.h>
@@ -569,10 +569,13 @@ transition(state_t s)
* NB: should send a message to the session logger to avoid blocking.
*/
static void
-clear_session_logs(session_t *sp)
+clear_session_logs(session_t *sp __unused)
{
- ulog_logout(sp->se_device);
+ /*
+ * XXX: Use getutxline() and call pututxline() for each entry.
+ * Is this safe to do this here? Is it really required anyway?
+ */
}
/*