svn commit: r285395 - head/usr.sbin/pw
Baptiste Daroussin
bapt at FreeBSD.org
Sat Jul 11 16:58:49 UTC 2015
Author: bapt
Date: Sat Jul 11 16:58:47 2015
New Revision: 285395
URL: https://svnweb.freebsd.org/changeset/base/285395
Log:
Separate usernext/groupnext from the main functions
Modified:
head/usr.sbin/pw/pw.h
head/usr.sbin/pw/pw_group.c
head/usr.sbin/pw/pw_user.c
Modified: head/usr.sbin/pw/pw.h
==============================================================================
--- head/usr.sbin/pw/pw.h Sat Jul 11 16:44:28 2015 (r285394)
+++ head/usr.sbin/pw/pw.h Sat Jul 11 16:58:47 2015 (r285395)
@@ -83,7 +83,9 @@ struct carg *addarg(struct cargs * _args
struct carg *getarg(struct cargs * _args, int ch);
int pw_user(int mode, char *name, long id, struct cargs * _args);
+int pw_usernext(struct userconf *cnf, bool quiet);
int pw_group(int mode, char *name, long id, struct cargs * _args);
+int pw_groupnext(struct userconf *cnf, bool quiet);
char *pw_checkname(char *name, int gecos);
int addnispwent(const char *path, struct passwd *pwd);
Modified: head/usr.sbin/pw/pw_group.c
==============================================================================
--- head/usr.sbin/pw/pw_group.c Sat Jul 11 16:44:28 2015 (r285394)
+++ head/usr.sbin/pw/pw_group.c Sat Jul 11 16:58:47 2015 (r285395)
@@ -92,6 +92,18 @@ set_passwd(struct group *grp, bool updat
}
int
+pw_groupnext(struct userconf *cnf, bool quiet)
+{
+ gid_t next = gr_gidpolicy(cnf, -1);
+
+ if (quiet)
+ return (next);
+ printf("%u\n", next);
+
+ return (EXIT_SUCCESS);
+}
+
+int
pw_group(int mode, char *name, long id, struct cargs * args)
{
int rc;
@@ -109,21 +121,12 @@ pw_group(int mode, char *name, long id,
NULL
};
+ if (mode == M_NEXT)
+ return (pw_groupnext(cnf, getarg(args, 'q') != NULL));
+
if (mode == M_LOCK || mode == M_UNLOCK)
errx(EX_USAGE, "'lock' command is not available for groups");
- /*
- * With M_NEXT, we only need to return the
- * next gid to stdout
- */
- if (mode == M_NEXT) {
- gid_t next = gr_gidpolicy(cnf, id);
- if (getarg(args, 'q'))
- return next;
- printf("%u\n", next);
- return EXIT_SUCCESS;
- }
-
if (mode == M_PRINT && getarg(args, 'a')) {
SETGRENT();
while ((grp = GETGRENT()) != NULL)
Modified: head/usr.sbin/pw/pw_user.c
==============================================================================
--- head/usr.sbin/pw/pw_user.c Sat Jul 11 16:44:28 2015 (r285394)
+++ head/usr.sbin/pw/pw_user.c Sat Jul 11 16:58:47 2015 (r285395)
@@ -148,6 +148,20 @@ set_passwd(struct passwd *pwd, bool upda
return (1);
}
+int
+pw_usernext(struct userconf *cnf, bool quiet)
+{
+ uid_t next = pw_uidpolicy(cnf, -1);
+
+ if (quiet)
+ return (next);
+
+ printf("%u:", next);
+ pw_groupnext(cnf, quiet);
+
+ return (EXIT_SUCCESS);
+}
+
/*-
* -C config configuration file
* -q quiet operation
@@ -216,19 +230,8 @@ pw_user(int mode, char *name, long id, s
cnf = conf.userconf;
- /*
- * With M_NEXT, we only need to return the
- * next uid to stdout
- */
if (mode == M_NEXT)
- {
- uid_t next = pw_uidpolicy(cnf, id);
- if (getarg(args, 'q'))
- return next;
- printf("%u:", next);
- pw_group(mode, name, -1, args);
- return EXIT_SUCCESS;
- }
+ return (pw_usernext(cnf, getarg(args, 'q') != NULL));
/*
* We can do all of the common legwork here
@@ -845,11 +848,8 @@ pw_gidpolicy(struct cargs * args, char *
addarg(&grpargs, 'g', tmp);
}
if (conf.dryrun) {
- addarg(&grpargs, 'q', NULL);
- gid = pw_group(M_NEXT, nam, -1, &grpargs);
- }
- else
- {
+ gid = pw_groupnext(cnf, true);
+ } else {
pw_group(M_ADD, nam, -1, &grpargs);
if ((grp = GETGRNAM(nam)) != NULL)
gid = grp->gr_gid;
More information about the svn-src-all
mailing list