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
, 0,
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
, 0, "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
, 0,
101 "translate a host name to an address");
102 cmd_AddParm(ts
, "-host", CMD_SINGLE
, CMD_REQUIRED
, "host name");
103 SetupCommonCmdArgs(ts
);