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>
16 #include <afs/pthread_glock.h>
17 #include <afs/cellconfig.h>
25 #include "afs_usrops.h"
28 /* This is a utility routine that many parts of kauth use but it invokes the
29 afsconf package so its best to have it in a separate .o file to make the
32 static struct afsconf_dir *conf = 0;
33 static char cell_name[MAXCELLCHARS];
36 ka_CellConfig(const char *dir)
40 strcpy(cell_name, afs_LclCellName);
48 conf = afsconf_Open(dir);
53 code = afsconf_GetLocalCell(conf, cell_name, sizeof(cell_name));
73 strcpy(cell_name, afs_LclCellName);
75 if ((conf = afsconf_Open(AFSDIR_CLIENT_ETC_DIRPATH))) {
76 code = afsconf_GetLocalCell(conf, cell_name, sizeof(cell_name));
77 /* leave conf open so we can lookup other cells */
78 /* afsconf_Close (conf); */
81 printf("** Can't determine local cell name!\n");
92 ka_ExpandCell(char *cell, char *fullCell, int *alocal)
96 char cellname[MAXKTCREALMLEN];
97 struct afsconf_cell cellinfo; /* storage for cell info */
100 ka_LocalCell(); /* initialize things */
106 if ((cell == 0) || (strlen(cell) == 0)) {
110 cell = lcstring(cellname, cell, sizeof(cellname));
111 code = afsconf_GetCellInfo(conf, cell, 0, &cellinfo);
116 cell = cellinfo.name;
118 if (strcmp(cell, cell_name) == 0)
122 strcpy(fullCell, cell);
130 ka_CellToRealm(char *cell, char *realm, int *local)
134 opr_Assert(realm != NULL);
137 code = ka_ExpandCell(cell, realm, local);
138 ucstring(realm, realm, MAXKTCREALMLEN);