diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2012-01-05 10:40:24 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2012-01-05 10:40:24 +0000 |
commit | 5c5e67d83f6be45507a76cb75af552ccc3576daf (patch) | |
tree | 6d61075b02c2a22866511ab16ef446e3a66609f2 /libutil | |
parent | cda8e1027a7b18b2894b7422ef611093e5e2a3da (diff) | |
download | pw-darwin-5c5e67d83f6be45507a76cb75af552ccc3576daf.tar.gz pw-darwin-5c5e67d83f6be45507a76cb75af552ccc3576daf.tar.zst pw-darwin-5c5e67d83f6be45507a76cb75af552ccc3576daf.zip |
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)
Diffstat (limited to 'libutil')
-rw-r--r-- | libutil/libutil.h | 1 | ||||
-rw-r--r-- | libutil/pw_util.c | 16 |
2 files changed, 16 insertions, 1 deletions
diff --git a/libutil/libutil.h b/libutil/libutil.h index dea14cf..47896c1 100644 --- a/libutil/libutil.h +++ b/libutil/libutil.h @@ -144,6 +144,7 @@ int pw_equal(const struct passwd *_pw1, const struct passwd *_pw2); 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); diff --git a/libutil/pw_util.c b/libutil/pw_util.c index 1068eff..5cd27b1 100644 --- a/libutil/pw_util.c +++ b/libutil/pw_util.c @@ -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); } /* |