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
11 * This file implements the util related funtions for afscp
14 #include <afsconfig.h>
15 #include <afs/param.h>
22 DoUtilErrorTranslate(struct cmd_syndesc *as, void *arock)
26 int err = atoi(as->parms[ERROR_CODE].items->data);
27 const char *err_str = "unknown error";
29 if (util_AdminErrorCodeTranslate(err, 0, &err_str, &st)) {
30 printf("%d -> %s\n", err, err_str);
32 ERR_ST_EXT("util_AdminErrorCodeTranslate failed", st);
39 DoUtilDatabaseServerList(struct cmd_syndesc *as, void *arock)
44 util_databaseServerEntry_t server;
45 const char *cell = as->parms[CELL_NAME].items->data;
47 if (util_DatabaseServerGetBegin(cell, &iter, &st)) {
48 printf("listing database servers in cell %s\n", cell);
49 while (util_DatabaseServerGetNext(iter, &server, &st)) {
51 ina.s_addr = htonl((unsigned int)server.serverAddress);
52 printf("%s %s\n", server.serverName, inet_ntoa(ina));
54 if (st != ADMITERATORDONE) {
55 ERR_ST_EXT("util_DatabaseServerGetNext", st);
57 if (!util_DatabaseServerGetDone(iter, &st)) {
58 ERR_ST_EXT("util_DatabaseServerGetDone", st);
61 ERR_ST_EXT("util_DatabaseServerGetBegin", st);
68 DoUtilNameToAddress(struct cmd_syndesc *as, void *arock)
72 const char *server = as->parms[SERVER_NAME].items->data;
75 if (util_AdminServerAddressGetFromName(server, &server_addr, &st)) {
77 ina.s_addr = htonl((unsigned int)server_addr);
78 printf("address is %s\n", inet_ntoa(ina));
80 ERR_ST_EXT("util_AdminServerAddressGetFromName", st);
86 SetupUtilAdminCmd(void)
88 struct cmd_syndesc *ts;
90 ts = cmd_CreateSyntax("UtilErrorTranslate", DoUtilErrorTranslate, NULL,
91 "translate an error code");
92 cmd_AddParm(ts, "-error", CMD_SINGLE, CMD_REQUIRED, "error code");
93 SetupCommonCmdArgs(ts);
95 ts = cmd_CreateSyntax("UtilDatabaseServerList", DoUtilDatabaseServerList,
96 NULL, "list the database servers in a cell");
97 cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_REQUIRED, "cell to list");
98 SetupCommonCmdArgs(ts);
100 ts = cmd_CreateSyntax("UtilNameToAddress", DoUtilNameToAddress, NULL,
101 "translate a host name to an address");
102 cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host name");
103 SetupCommonCmdArgs(ts);