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
13 Test of the routines used by the FileServer to manipulate the cell/server database and
14 determine the local cell name:
15 1) Reading in the local cell name from file.
16 2) Reading in the cell/server database from disk.
17 3) Reporting the set of servers associated with a given cell name.
18 4) Printing out the contents of the cell/server database.
19 5) Reclaiming the space used by an in-memory database.
24 --------------------------------------------------------------------------------------------------------------*/
25 #include <afsconfig.h>
26 #include <afs/param.h>
31 #include <sys/types.h>
35 #include <afs/afsutil.h>
39 #include <netinet/in.h>
41 #include <afs/cellconfig.h>
43 PrintOneCell(ainfo, arock, adir)
44 struct afsconf_cell *ainfo;
46 struct afsconf_dir *adir;
51 printf("Cell %s:\n", ainfo->name);
52 for (i = 0; i < ainfo->numServers; i++) {
53 memcpy(&temp, &ainfo->hostAddr[i].sin_addr, sizeof(long));
54 printf(" host %s at %x.%x\n", ainfo->hostName[i], temp,
55 ainfo->hostAddr[i].sin_port);
60 /*Main for testcellconfig*/
65 struct afsconf_dir *theDir;
67 struct afsconf_cell theCell;
74 ("usage: testcellconfig <conf-dir-name> [<cell-to-display>]*\n");
79 theDir = afsconf_Open(dirName);
81 printf("could not open configuration files in '%s'\n", dirName);
86 code = afsconf_GetLocalCell(theDir, tbuffer, sizeof(tbuffer));
88 printf("get local cell failed, code %d\n", code);
91 printf("Local cell is '%s'\n\n", tbuffer);
94 printf("About to print cell database contents:\n");
95 afsconf_CellApply(theDir, PrintOneCell, 0);
97 /* do this junk once */
98 printf("start of special test\n");
99 code = afsconf_GetCellInfo(theDir, NULL, "afsprot", &theCell);
101 printf("failed to find afsprot service (%d)\n", code);
103 printf("AFSPROT service:\n");
104 PrintOneCell(&theCell, (char *)NULL, theDir);
106 code = afsconf_GetCellInfo(theDir, 0, "bozotheclown", &theCell);
108 printf("unexpectedly found service 'bozotheclown'\n");
109 code = afsconf_GetCellInfo(theDir, NULL, "telnet", &theCell);
110 printf("Here's the telnet service:\n");
111 PrintOneCell(&theCell, NULL, theDir);
112 printf("done with special test\n");
114 /* now print out specified cell info */
115 for (i = 2; i < argc; i++) {
116 code = afsconf_GetCellInfo(theDir, argv[i], 0, &theCell);
118 printf("Could not find info for cell '%s', code %d\n",
121 PrintOneCell(&theCell, NULL, theDir);