1 /*
2 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
5
6 #pragma ident "@(#)kadm_host_srv_names.c 1.6 04/09/08 SMI"
7
8 /*
9 * lib/kad5/kadm_host_srv_names.c
10 */
11
12 #include "admin.h"
13 #include <stdio.h>
14 #include <os-proto.h>
15
16 #define KADM5_MASTER "admin_server"
17
18 /*
19 * Find the admin server for the given realm. If the realm is null or
20 * the empty string, find the admin server for the default realm.
21 * Returns 0 on succsess (KADM5_OK). It is the callers responsibility to
22 * free the storage allocated to the admin server, master.
23 */
24 kadm5_ret_t
25 kadm5_get_master(krb5_context context, const char *realm, char **master)
26 {
103 kadm5_ret_t ret;
104 char *name;
105 char *host;
106
107
108 if (ret = kadm5_get_master(context, realm, &host))
109 return (ret);
110
111 name = malloc(strlen(KADM5_CHANGEPW_HOST_SERVICE) + strlen(host) + 2);
112 if (name == NULL) {
113 free(host);
114 return (ENOMEM);
115 }
116 sprintf(name, "%s@%s", KADM5_CHANGEPW_HOST_SERVICE, host);
117 free(host);
118 *host_service_name = name;
119
120 return (KADM5_OK);
121 }
122
|
1 /*
2 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
5
6 #pragma ident "@(#)kadm_host_srv_names.c 1.5 04/03/16 SMI"
7
8 /*
9 * lib/kad5/kadm_host_srv_names.c
10 */
11
12 #include "admin.h"
13 #include <stdio.h>
14 #include <os-proto.h>
15
16 #define KADM5_MASTER "admin_server"
17
18 /*
19 * Find the admin server for the given realm. If the realm is null or
20 * the empty string, find the admin server for the default realm.
21 * Returns 0 on succsess (KADM5_OK). It is the callers responsibility to
22 * free the storage allocated to the admin server, master.
23 */
24 kadm5_ret_t
25 kadm5_get_master(krb5_context context, const char *realm, char **master)
26 {
103 kadm5_ret_t ret;
104 char *name;
105 char *host;
106
107
108 if (ret = kadm5_get_master(context, realm, &host))
109 return (ret);
110
111 name = malloc(strlen(KADM5_CHANGEPW_HOST_SERVICE) + strlen(host) + 2);
112 if (name == NULL) {
113 free(host);
114 return (ENOMEM);
115 }
116 sprintf(name, "%s@%s", KADM5_CHANGEPW_HOST_SERVICE, host);
117 free(host);
118 *host_service_name = name;
119
120 return (KADM5_OK);
121 }
122
123 /*
124 * Get the host base service name for the kiprop principal. Returns
125 * KADM5_OK on success. Caller must free the storage allocated
126 * for host_service_name.
127 */
128 kadm5_ret_t kadm5_get_kiprop_host_srv_name(krb5_context context,
129 const char *realm,
130 char **host_service_name) {
131 kadm5_ret_t ret;
132 char *name;
133 char *host;
134
135
136 if (ret = kadm5_get_master(context, realm, &host))
137 return (ret);
138
139 name = malloc(strlen(KADM5_KIPROP_HOST_SERVICE) + strlen(host) + 2);
140 if (name == NULL) {
141 free(host);
142 return (ENOMEM);
143 }
144 sprintf(name, "%s@%s", KADM5_KIPROP_HOST_SERVICE, host);
145 free(host);
146 *host_service_name = name;
147
148 return (KADM5_OK);
149 }
|