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>
23 DoUtilErrorTranslate(struct cmd_syndesc *as, char *arock)
25 typedef enum { ERROR_CODE } DoUtilErrorTranslate_parm_t;
27 int err = atoi(as->parms[ERROR_CODE].items->data);
28 const char *err_str = "unknown error";
30 if (util_AdminErrorCodeTranslate(err, 0, &err_str, &st)) {
31 printf("%d -> %s\n", err, err_str);
33 ERR_ST_EXT("util_AdminErrorCodeTranslate failed", st);
40 DoUtilDatabaseServerList(struct cmd_syndesc *as, char *arock)
42 typedef enum { CELL_NAME } DoUtilDatabaseServerList_parm_t;
45 util_databaseServerEntry_t server;
46 const char *cell = as->parms[CELL_NAME].items->data;
48 if (util_DatabaseServerGetBegin(cell, &iter, &st)) {
49 printf("listing database servers in cell %s\n", cell);
50 while (util_DatabaseServerGetNext(iter, &server, &st)) {
52 ina.s_addr = htonl((unsigned int)server.serverAddress);
53 printf("%s %s\n", server.serverName, inet_ntoa(ina));
55 if (st != ADMITERATORDONE) {
56 ERR_ST_EXT("util_DatabaseServerGetNext", st);
58 if (!util_DatabaseServerGetDone(iter, &st)) {
59 ERR_ST_EXT("util_DatabaseServerGetDone", st);
62 ERR_ST_EXT("util_DatabaseServerGetBegin", st);
69 DoUtilNameToAddress(struct cmd_syndesc *as, char *arock)
71 typedef enum { SERVER_NAME } DoUtilNameToAddress_parm_t;
73 const char *server = as->parms[SERVER_NAME].items->data;
76 if (util_AdminServerAddressGetFromName(server, &server_addr, &st)) {
78 ina.s_addr = htonl((unsigned int)server_addr);
79 printf("address is %s\n", inet_ntoa(ina));
81 ERR_ST_EXT("util_AdminServerAddressGetFromName", st);
87 SetupUtilAdminCmd(void)
89 struct cmd_syndesc *ts;
91 ts = cmd_CreateSyntax("UtilErrorTranslate", DoUtilErrorTranslate, 0,
92 "translate an error code");
93 cmd_AddParm(ts, "-error", CMD_SINGLE, CMD_REQUIRED, "error code");
94 SetupCommonCmdArgs(ts);
96 ts = cmd_CreateSyntax("UtilDatabaseServerList", DoUtilDatabaseServerList,
97 0, "list the database servers in a cell");
98 cmd_AddParm(ts, "-cell", CMD_SINGLE, CMD_REQUIRED, "cell to list");
99 SetupCommonCmdArgs(ts);
101 ts = cmd_CreateSyntax("UtilNameToAddress", DoUtilNameToAddress, 0,
102 "translate a host name to an address");
103 cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host name");
104 SetupCommonCmdArgs(ts);