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, char *arock)
24 typedef enum {ERROR_CODE} DoUtilErrorTranslate_parm_t;
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, char *arock)
41 typedef enum {CELL_NAME} DoUtilDatabaseServerList_parm_t;
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,
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");
94 "-error", CMD_SINGLE, CMD_REQUIRED, "error code");
95 SetupCommonCmdArgs(ts);
97 ts = cmd_CreateSyntax("UtilDatabaseServerList", DoUtilDatabaseServerList, 0,
98 "list the database servers in a cell");
100 "-cell", CMD_SINGLE, CMD_REQUIRED, "cell to list");
101 SetupCommonCmdArgs(ts);
103 ts = cmd_CreateSyntax("UtilNameToAddress", DoUtilNameToAddress, 0,
104 "translate a host name to an address");
105 cmd_AddParm(ts, "-host", CMD_SINGLE, CMD_REQUIRED, "host name");
106 SetupCommonCmdArgs(ts);