Lines Matching defs:cfg

82 smb_krb5_cfg_init(smb_krb5_cfg_t *cfg, const char *fqdn,
87 if (cfg == NULL || fqdn == NULL || kdcs == NULL)
90 bzero(cfg, sizeof (smb_krb5_cfg_t));
92 if ((rc = krb5_init_context(&cfg->kc_ctx)) != 0)
95 cfg->kc_path = smb_krb5_cfg_getpath();
96 cfg->kc_exist = (access(cfg->kc_path, F_OK) == 0) ? B_TRUE : B_FALSE;
98 rc = k5_profile_init(cfg->kc_path, &cfg->kc_profile);
100 (void) smb_krb5_cfg_fini(cfg, B_FALSE);
104 if (cfg->kc_exist) {
105 (void) k5_profile_get_default_realm(cfg->kc_profile,
106 &cfg->kc_orig_drealm);
109 cfg->kc_fqdomain = strdup(fqdn);
110 cfg->kc_realm = smb_krb5_domain2realm(fqdn);
111 cfg->kc_master_kdc = strdup(master_kdc);
112 cfg->kc_kdcs = smb_krb5_dup_servers(kdcs, count);
114 if ((cfg->kc_fqdomain == NULL) || (cfg->kc_realm == NULL) ||
115 (cfg->kc_master_kdc == NULL) || (cfg->kc_kdcs == NULL)) {
116 (void) smb_krb5_cfg_fini(cfg, B_FALSE);
119 (void) smb_strlwr(cfg->kc_fqdomain);
129 smb_krb5_cfg_fini(smb_krb5_cfg_t *cfg, boolean_t commit)
134 if (cfg == NULL)
138 if (cfg->kc_profile == NULL)
141 if ((rc = k5_profile_release(cfg->kc_profile)) != 0)
144 if (cfg->kc_profile != NULL)
145 k5_profile_abandon(cfg->kc_profile);
148 if (cfg->kc_ctx != NULL)
149 krb5_free_context(cfg->kc_ctx);
151 free(cfg->kc_orig_drealm);
152 free(cfg->kc_realm);
153 free(cfg->kc_fqdomain);
154 free(cfg->kc_master_kdc);
156 if (cfg->kc_kdcs != NULL) {
157 for (i = 0; cfg->kc_kdcs[i] != NULL; i++)
158 free(cfg->kc_kdcs[i]);
160 free(cfg->kc_kdcs);
268 smb_krb5_cfg_add(smb_krb5_cfg_t *cfg, char *errmsg, size_t len)
272 char *masters[] = {cfg->kc_master_kdc, NULL};
276 if (cfg == NULL || errmsg == NULL)
281 if ((rc = k5_profile_add_realm(cfg->kc_profile,
282 cfg->kc_realm, cfg->kc_master_kdc,
283 cfg->kc_kdcs, B_TRUE, cfg->kc_default)) != 0) {
285 cfg->kc_realm, cfg->kc_path);
289 if ((rc = k5_profile_add_realm_entry(cfg->kc_profile,
290 cfg->kc_realm, SMB_KRB5_CFG_KPASSWD_SRV, masters)) != 0) {
292 " to %s realm in %s", cfg->kc_master_kdc, cfg->kc_realm,
293 cfg->kc_path);
305 cfg->kc_fqdomain);
308 cfg->kc_profile, relation, cfg->kc_realm)) != 0) {
311 cfg->kc_realm);
315 if ((rc = k5_profile_validate(cfg->kc_profile, cfg->kc_realm,
318 cfg->kc_path);
324 return (smb_krb5_cfg_update(cfg, errmsg, len));
336 smb_krb5_cfg_update(smb_krb5_cfg_t *cfg, char *errmsg, size_t len)
347 if (cfg == NULL || errmsg == NULL)
352 if ((rc = k5_profile_validate(cfg->kc_profile,
353 cfg->kc_realm, &verrcode, &errval)) != 0) {
355 cfg->kc_path);
369 cfg->kc_profile, cfg->kc_realm,
370 SMB_KRB5_CFG_KDC, cfg->kc_kdcs)) != 0) {
373 cfg->kc_realm);
380 if ((rc = smb_krb5_cfg_update_master(cfg,
388 if (!cfg->kc_default)
391 (void) k5_profile_get_default_realm(cfg->kc_profile,
393 if (strcmp(drealm, cfg->kc_realm) == 0)
402 cfg->kc_profile, cfg->kc_realm)) != 0) {
403 if (strcmp(errval, cfg->kc_realm)) {
407 errval, cfg->kc_realm);
411 cfg->kc_realm);
423 rc = k5_profile_remove_realm(cfg->kc_profile, errval);
428 errval, cfg->kc_path);
433 if ((rc = k5_profile_add_realm(cfg->kc_profile,
434 cfg->kc_realm, cfg->kc_master_kdc,
435 cfg->kc_kdcs, B_TRUE, cfg->kc_default)) != 0) {
438 cfg->kc_realm, cfg->kc_path);
452 cfg->kc_fqdomain);
455 cfg->kc_profile, lval, cfg->kc_realm)) != 0) {
458 cfg->kc_realm);
466 cfg->kc_profile, cfg->kc_realm, SMB_KRB5_CFG_KDC,
467 cfg->kc_kdcs)) != 0) {
470 cfg->kc_realm);
479 if ((rc = smb_krb5_cfg_update_master(cfg, errmsg,
490 cfg->kc_profile, errval, cfg->kc_realm)) != 0) {
493 cfg->kc_realm);
511 if (k5_profile_validate_get_error_msg(cfg->kc_profile, verrcode,
530 smb_krb5_cfg_update_master(smb_krb5_cfg_t *cfg, char *errmsg, size_t len)
532 char *masters[] = {cfg->kc_master_kdc, NULL};
535 if (cfg == NULL || errmsg == NULL)
539 if ((rc = k5_profile_add_realm_entry(cfg->kc_profile,
540 cfg->kc_realm, SMB_KRB5_CFG_KPASSWD_SRV, masters)) != 0) {
542 "failed to add kpasswd_server for %s", cfg->kc_realm);
546 if ((rc = k5_profile_add_realm_entry(cfg->kc_profile,
547 cfg->kc_realm, SMB_KRB5_CFG_ADMIN_SRV, masters)) != 0) {
549 "failed to add admin_server for %s", cfg->kc_realm);