pw_group.c (285396) | pw_group.c (285398) |
---|---|
1/*- 2 * Copyright (C) 1996 3 * David L. Nugent. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#ifndef lint 28static const char rcsid[] = | 1/*- 2 * Copyright (C) 1996 3 * David L. Nugent. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 12 unchanged lines hidden (view full) --- 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#ifndef lint 28static const char rcsid[] = |
29 "$FreeBSD: head/usr.sbin/pw/pw_group.c 285396 2015-07-11 17:01:08Z bapt $"; | 29 "$FreeBSD: head/usr.sbin/pw/pw_group.c 285398 2015-07-11 18:09:27Z bapt $"; |
30#endif /* not lint */ 31 32#include <ctype.h> 33#include <err.h> 34#include <termios.h> 35#include <stdbool.h> 36#include <unistd.h> 37#include <grp.h> --- 60 unchanged lines hidden (view full) --- 98 99 if (quiet) 100 return (next); 101 printf("%u\n", next); 102 103 return (EXIT_SUCCESS); 104} 105 | 30#endif /* not lint */ 31 32#include <ctype.h> 33#include <err.h> 34#include <termios.h> 35#include <stdbool.h> 36#include <unistd.h> 37#include <grp.h> --- 60 unchanged lines hidden (view full) --- 98 99 if (quiet) 100 return (next); 101 printf("%u\n", next); 102 103 return (EXIT_SUCCESS); 104} 105 |
106static int 107pw_groupshow(const char *name, long id, struct group *fakegroup) 108{ 109 struct group *grp = NULL; 110 111 if (id < 0 && name == NULL && !conf.all) 112 errx(EX_DATAERR, "groupname or id or '-a' required"); 113 114 if (conf.all) { 115 SETGRENT(); 116 while ((grp = GETGRENT()) != NULL) 117 print_group(grp); 118 ENDGRENT(); 119 120 return (EXIT_SUCCESS); 121 } 122 123 grp = (name != NULL) ? GETGRNAM(name) : GETGRGID(id); 124 if (grp == NULL) { 125 if (conf.force) { 126 grp = fakegroup; 127 } else { 128 if (name == NULL) 129 errx(EX_DATAERR, "unknown gid `%ld'", id); 130 errx(EX_DATAERR, "unknown group `%s'", name); 131 } 132 } 133 134 return (print_group(grp)); 135} 136 |
|
106int 107pw_group(int mode, char *name, long id, struct cargs * args) 108{ 109 int rc; 110 struct carg *arg; 111 struct group *grp = NULL; 112 int grmembers = 0; 113 char **members = NULL; --- 5 unchanged lines hidden (view full) --- 119 "*", 120 -1, 121 NULL 122 }; 123 124 if (mode == M_NEXT) 125 return (pw_groupnext(cnf, conf.quiet)); 126 | 137int 138pw_group(int mode, char *name, long id, struct cargs * args) 139{ 140 int rc; 141 struct carg *arg; 142 struct group *grp = NULL; 143 int grmembers = 0; 144 char **members = NULL; --- 5 unchanged lines hidden (view full) --- 150 "*", 151 -1, 152 NULL 153 }; 154 155 if (mode == M_NEXT) 156 return (pw_groupnext(cnf, conf.quiet)); 157 |
158 if (mode == M_PRINT) 159 return (pw_groupshow(name, id, &fakegroup)); 160 |
|
127 if (mode == M_LOCK || mode == M_UNLOCK) 128 errx(EX_USAGE, "'lock' command is not available for groups"); 129 | 161 if (mode == M_LOCK || mode == M_UNLOCK) 162 errx(EX_USAGE, "'lock' command is not available for groups"); 163 |
130 if (mode == M_PRINT && getarg(args, 'a')) { 131 SETGRENT(); 132 while ((grp = GETGRENT()) != NULL) 133 print_group(grp); 134 ENDGRENT(); 135 return EXIT_SUCCESS; 136 } | |
137 if (id < 0 && name == NULL) 138 errx(EX_DATAERR, "group name or id required"); 139 140 grp = (name != NULL) ? GETGRNAM(name) : GETGRGID(id); 141 | 164 if (id < 0 && name == NULL) 165 errx(EX_DATAERR, "group name or id required"); 166 167 grp = (name != NULL) ? GETGRNAM(name) : GETGRGID(id); 168 |
142 if (mode == M_UPDATE || mode == M_DELETE || mode == M_PRINT) { | 169 if (mode == M_UPDATE || mode == M_DELETE) { |
143 if (name == NULL && grp == NULL) /* Try harder */ 144 grp = GETGRGID(id); 145 146 if (grp == NULL) { | 170 if (name == NULL && grp == NULL) /* Try harder */ 171 grp = GETGRGID(id); 172 173 if (grp == NULL) { |
147 if (mode == M_PRINT && getarg(args, 'F')) { 148 char *fmems[1]; 149 fmems[0] = NULL; 150 fakegroup.gr_name = name ? name : "nogroup"; 151 fakegroup.gr_gid = (gid_t) id; 152 fakegroup.gr_mem = fmems; 153 return print_group(&fakegroup); 154 } | |
155 if (name == NULL) 156 errx(EX_DATAERR, "unknown group `%s'", name); 157 else 158 errx(EX_DATAERR, "unknown group `%ld'", id); 159 } 160 if (name == NULL) /* Needed later */ 161 name = grp->gr_name; 162 --- 263 unchanged lines hidden --- | 174 if (name == NULL) 175 errx(EX_DATAERR, "unknown group `%s'", name); 176 else 177 errx(EX_DATAERR, "unknown group `%ld'", id); 178 } 179 if (name == NULL) /* Needed later */ 180 name = grp->gr_name; 181 --- 263 unchanged lines hidden --- |