Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jan 2012 10:40:25 +0000 (UTC)
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r229572 - head/lib/libutil
Message-ID:  <201201051040.q05AePQI027827@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bapt
Date: Thu Jan  5 10:40:24 2012
New Revision: 229572
URL: http://svn.freebsd.org/changeset/base/229572

Log:
  Add new pw_make_v7 to make a passwd line (in v7 format) out of a struct passwd
  while here, fix missing parentheses of the return statement of pw_make.
  
  Approved by:	des (mentor)

Modified:
  head/lib/libutil/libutil.h
  head/lib/libutil/pw_util.c

Modified: head/lib/libutil/libutil.h
==============================================================================
--- head/lib/libutil/libutil.h	Thu Jan  5 10:32:53 2012	(r229571)
+++ head/lib/libutil/libutil.h	Thu Jan  5 10:40:24 2012	(r229572)
@@ -144,6 +144,7 @@ int	pw_equal(const struct passwd *_pw1, 
 void	pw_fini(void);
 int	pw_init(const char *_dir, const char *_master);
 char	*pw_make(const struct passwd *_pw);
+char	*pw_make_v7(const struct passwd *_pw);
 int	pw_mkdb(const char *_user);
 int	pw_lock(void);
 struct passwd *pw_scan(const char *_line, int _flags);

Modified: head/lib/libutil/pw_util.c
==============================================================================
--- head/lib/libutil/pw_util.c	Thu Jan  5 10:32:53 2012	(r229571)
+++ head/lib/libutil/pw_util.c	Thu Jan  5 10:40:24 2012	(r229572)
@@ -406,7 +406,21 @@ pw_make(const struct passwd *pw)
 	    pw->pw_passwd, (uintmax_t)pw->pw_uid, (uintmax_t)pw->pw_gid,
 	    pw->pw_class, (uintmax_t)pw->pw_change, (uintmax_t)pw->pw_expire,
 	    pw->pw_gecos, pw->pw_dir, pw->pw_shell);
-	return line;
+	return (line);
+}
+
+/*
+ * Make a passwd line (in v7 format) out of a struct passwd
+ */
+char *
+pw_make_v7(const struct passwd *pw)
+{
+	char *line;
+
+	asprintf(&line, "%s:*:%ju:%ju:%s:%s:%s", pw->pw_name,
+	    (uintmax_t)pw->pw_uid, (uintmax_t)pw->pw_gid,
+	    pw->pw_gecos, pw->pw_dir, pw->pw_shell);
+	return (line);
 }
 
 /*



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