Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 2010 10:41:27 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r201638 - in user/ed/utmpx: include lib/libc/gen
Message-ID:  <201001061041.o06AfRT5099222@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Wed Jan  6 10:41:27 2010
New Revision: 201638
URL: http://svn.freebsd.org/changeset/base/201638

Log:
  Reintroduce getutxuser().
  
  This function will be used by applications that crawl through the
  lastlogin database.

Modified:
  user/ed/utmpx/include/utmpx.h
  user/ed/utmpx/lib/libc/gen/Symbol.map
  user/ed/utmpx/lib/libc/gen/getutxent.c

Modified: user/ed/utmpx/include/utmpx.h
==============================================================================
--- user/ed/utmpx/include/utmpx.h	Wed Jan  6 10:29:53 2010	(r201637)
+++ user/ed/utmpx/include/utmpx.h	Wed Jan  6 10:41:27 2010	(r201638)
@@ -78,6 +78,7 @@ struct utmpx *pututxline(const struct ut
 void	setutxent(void);
 
 #if __BSD_VISIBLE
+struct utmpx *getutxuser(const char *);
 int	setutxdb(int, const char *);
 #endif
 __END_DECLS

Modified: user/ed/utmpx/lib/libc/gen/Symbol.map
==============================================================================
--- user/ed/utmpx/lib/libc/gen/Symbol.map	Wed Jan  6 10:29:53 2010	(r201637)
+++ user/ed/utmpx/lib/libc/gen/Symbol.map	Wed Jan  6 10:41:27 2010	(r201638)
@@ -372,6 +372,7 @@ FBSD_1.2 {
 	getutxent;
 	getutxid;
 	getutxline;
+	getutxuser;
 	pututxline;
 	setutxdb;
 	setutxent;

Modified: user/ed/utmpx/lib/libc/gen/getutxent.c
==============================================================================
--- user/ed/utmpx/lib/libc/gen/getutxent.c	Wed Jan  6 10:29:53 2010	(r201637)
+++ user/ed/utmpx/lib/libc/gen/getutxent.c	Wed Jan  6 10:41:27 2010	(r201638)
@@ -238,3 +238,25 @@ found:
 	futx_to_utx(fu, &utx);
 	return (&utx);
 }
+
+struct utmpx *
+getutxuser(const char *user)
+{
+	struct futx *fu;
+
+	for (;;) {
+		fu = getfutxent();
+		if (fu == NULL)
+			return (NULL);
+
+		switch (fu->fu_type) {
+		case USER_PROCESS:
+			if (strncmp(fu->fu_user, user, sizeof fu->fu_user) == 0)
+				goto found;
+		}
+	}
+
+found:
+	futx_to_utx(fu, &utx);
+	return (&utx);
+}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001061041.o06AfRT5099222>