ptserver-warning-cleanup-20011005
[openafs.git] / src / ptserver / readpwd.c
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
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
8  */
9
10 #include <afsconfig.h>
11 #include <afs/param.h>
12
13 RCSID("$Header$");
14
15 #include <stdio.h>
16 #ifdef AFS_NT40_ENV
17 #include <WINNT/afsevent.h>
18 #endif
19 #ifdef HAVE_STRING_H
20 #include <string.h>
21 #else
22 #ifdef HAVE_STRINGS_H
23 #include <strings.h>
24 #endif
25 #endif
26 #include <rx/rx.h>
27 #include <rx/xdr.h>
28 #include <afs/cellconfig.h>
29 #include <afs/afsutil.h>
30 #include "ptclient.h"
31
32 int osi_audit()
33 {
34 /* OK, this REALLY sucks bigtime, but I can't tell who is calling
35  * afsconf_CheckAuth easily, and only *SERVERS* should be calling osi_audit
36  * anyway.  It's gonna give somebody fits to debug, I know, I know.
37  */
38 return 0;
39 }
40
41 #include "AFS_component_version_number.c"
42
43 main(argc,argv)
44 afs_int32 argc;
45 char **argv;
46 {
47
48     register afs_int32 code;
49     char name[PR_MAXNAMELEN];
50     afs_int32 id;
51     char buf[150];
52     FILE *fp;
53     char *ptr;
54     char *aptr;
55     char *tmp;
56     char uid[8];
57     afs_int32 i;
58     afs_int32 verbose = 0;
59     char *cellname;
60
61     if (argc < 2) {
62         fprintf(stderr,"Usage: readpwd [-v] [-c cellname] passwdfile.\n");
63         exit(1);
64     }
65     cellname = 0;
66     for (i = 1;i<argc;i++) {
67         if (!strcmp(argv[i],"-v"))
68             verbose = 1;
69         else {
70             if (!strcmp(argv[i],"-c")) {
71                 cellname = (char *)malloc(100);
72                 strncpy(cellname,argv[++i],100);
73             }
74             else
75                 strncpy(buf,argv[i],150);
76         }
77     }
78     code = pr_Initialize(2, AFSDIR_CLIENT_ETC_DIRPATH, cellname);
79     if (code) {
80         fprintf(stderr,"pr_Initialize failed, code %d.\n",code);
81         exit(1);
82     }
83
84
85     if ((fp= fopen(buf,"r")) == NULL) {
86         fprintf(stderr,"Couldn't open %s.\n",argv[1]);
87         exit(2);
88     }
89     while ((tmp = fgets(buf,150,fp)) != NULL) {
90         memset(name, 0, PR_MAXNAMELEN);
91         memset(uid, 0, 8);
92         ptr = strchr(buf, ':');
93         strncpy(name,buf,ptr-buf);
94         aptr = strchr(++ptr, ':');
95         ptr = strchr(++aptr, ':');
96         strncpy(uid,aptr,ptr-aptr);
97         id = atoi(uid);
98         if (verbose)
99             printf("Adding %s with id %d.\n",name,id);
100         code = pr_CreateUser(name,&id);
101         if (code) {
102             fprintf(stderr,"Failed to add user %s with id %d!\n",name,id);
103             fprintf(stderr,"%s (%d).\n",pr_ErrorMsg(code),code);
104         }
105     }
106 }