2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 #include <afsconfig.h>
11 #include <afs/param.h>
18 #include <WINNT/afsevent.h>
23 #include <afs/cellconfig.h>
24 #include <afs/afsutil.h>
25 #include <afs/com_err.h>
28 #include "ptprototypes.h"
33 /* OK, this REALLY sucks bigtime, but I can't tell who is calling
34 * afsconf_CheckAuth easily, and only *SERVERS* should be calling osi_audit
35 * anyway. It's gonna give somebody fits to debug, I know, I know.
40 #include "AFS_component_version_number.c"
43 main(afs_int32 argc, char **argv)
46 register afs_int32 code;
47 char name[PR_MAXNAMELEN];
56 afs_int32 verbose = 0;
60 fprintf(stderr, "Usage: readpwd [-v] [-c cellname] passwdfile.\n");
64 for (i = 1; i < argc; i++) {
65 if (!strcmp(argv[i], "-v"))
68 if (!strcmp(argv[i], "-c")) {
69 cellname = (char *)malloc(100);
70 strncpy(cellname, argv[++i], 100);
72 strncpy(buf, argv[i], 150);
75 code = pr_Initialize(2, AFSDIR_CLIENT_ETC_DIRPATH, cellname);
78 fprintf(stderr, "pr_Initialize failed, code %d.\n", code);
83 if ((fp = fopen(buf, "r")) == NULL) {
84 fprintf(stderr, "Couldn't open %s.\n", argv[1]);
87 while ((tmp = fgets(buf, 150, fp)) != NULL) {
88 memset(name, 0, PR_MAXNAMELEN);
90 ptr = strchr(buf, ':');
91 strncpy(name, buf, ptr - buf);
92 aptr = strchr(++ptr, ':');
93 ptr = strchr(++aptr, ':');
94 strncpy(uid, aptr, ptr - aptr);
97 printf("Adding %s with id %d.\n", name, id);
98 code = pr_CreateUser(name, &id);
100 fprintf(stderr, "Failed to add user %s with id %d!\n", name, id);
101 fprintf(stderr, "%s (%d).\n", pr_ErrorMsg(code), code);