use krb5_appdefault_boolean instead of krb5_config_get_bool

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14203 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
2004-09-08 09:02:59 +00:00
parent 4b6d038f2b
commit 03bae875ad
3 changed files with 58 additions and 55 deletions

View File

@@ -181,21 +181,19 @@ krb5_to4 (krb5_ccache id)
int get_v4_tgt; int get_v4_tgt;
get_v4_tgt = krb5_config_get_bool(context, NULL,
"libdefaults",
"krb4_get_tickets",
NULL);
ret = krb5_cc_get_principal(context, id, &princ); ret = krb5_cc_get_principal(context, id, &princ);
if (ret == 0) { if(ret == 0) {
get_v4_tgt = krb5_config_get_bool_default(context, NULL, krb5_appdefault_boolean(context, "login",
get_v4_tgt, krb5_principal_get_realm(context, princ),
"realms", "krb4_get_tickets", FALSE, &get_v4_tgt);
*krb5_princ_realm(context,
princ),
"krb4_get_tickets",
NULL);
krb5_free_principal(context, princ); krb5_free_principal(context, princ);
} else {
krb5_realm realm = NULL;
krb5_get_default_realm(context, &realm);
krb5_appdefault_boolean(context, "login",
realm,
"krb4_get_tickets", FALSE, &get_v4_tgt);
free(realm);
} }
if (get_v4_tgt) { if (get_v4_tgt) {

View File

@@ -579,6 +579,7 @@ verify_krb5(const char *password)
{ {
krb5_error_code ret; krb5_error_code ret;
krb5_ccache id; krb5_ccache id;
krb5_boolean get_v4_tgt;
krb5_cc_default(context, &id); krb5_cc_default(context, &id);
ret = krb5_verify_user(context, ret = krb5_verify_user(context,
@@ -589,10 +590,10 @@ verify_krb5(const char *password)
NULL); NULL);
if (ret == 0){ if (ret == 0){
#ifdef KRB4 #ifdef KRB4
if (krb5_config_get_bool(context, NULL, krb5_appdefault_boolean(context, "xnlock",
"libdefaults", krb5_principal_get_realm(context, client),
"krb4_get_tickets", "krb4_get_tickets", FALSE, &get_v4_tgt);
NULL)) { if(get_v4_tgt) {
CREDENTIALS c; CREDENTIALS c;
krb5_creds mcred, cred; krb5_creds mcred, cred;

View File

@@ -163,49 +163,53 @@ verify_krb5(struct passwd *pwd,
} }
#ifdef KRB4 #ifdef KRB4
if (krb5_config_get_bool(context, NULL, {
"libdefaults", krb5_realm realm = NULL;
"krb4_get_tickets", krb5_boolean get_v4_tgt;
NULL)) {
CREDENTIALS c;
krb5_creds mcred, cred;
krb5_realm realm;
krb5_cc_clear_mcred(&mcred); krb5_get_default_realm(context, &realm);
krb5_appdefault_boolean(context, "afskauthlib",
realm,
"krb4_get_tickets", FALSE, &get_v4_tgt);
if (get_v4_tgt) {
CREDENTIALS c;
krb5_creds mcred, cred;
krb5_get_default_realm(context, &realm); krb5_cc_clear_mcred(&mcred);
krb5_make_principal(context, &mcred.server, realm,
"krbtgt", krb5_make_principal(context, &mcred.server, realm,
realm, "krbtgt",
NULL); realm,
free (realm); NULL);
ret = krb5_cc_retrieve_cred(context, ccache, 0, &mcred, &cred); ret = krb5_cc_retrieve_cred(context, ccache, 0, &mcred, &cred);
if(ret == 0) { if(ret == 0) {
ret = krb524_convert_creds_kdc_ccache(context, ccache, &cred, &c); ret = krb524_convert_creds_kdc_ccache(context, ccache, &cred, &c);
if(ret) if(ret)
krb5_warn(context, ret, "converting creds"); krb5_warn(context, ret, "converting creds");
else { else {
set_krbtkfile(pwd->pw_uid); set_krbtkfile(pwd->pw_uid);
tf_setup(&c, c.pname, c.pinst); tf_setup(&c, c.pname, c.pinst);
} }
memset(&c, 0, sizeof(c)); memset(&c, 0, sizeof(c));
krb5_free_cred_contents(context, &cred); krb5_free_cred_contents(context, &cred);
} else } else
syslog(LOG_AUTH|LOG_DEBUG, "krb5_cc_retrieve_cred: %s", syslog(LOG_AUTH|LOG_DEBUG, "krb5_cc_retrieve_cred: %s",
krb5_get_err_text(context, ret)); krb5_get_err_text(context, ret));
krb5_free_principal(context, mcred.server); krb5_free_principal(context, mcred.server);
} }
if (!pag_set && k_hasafs()) { free (realm);
k_setpag(); if (!pag_set && k_hasafs()) {
pag_set = 1; k_setpag();
} pag_set = 1;
}
if (pag_set) if (pag_set)
krb5_afslog_uid_home(context, ccache, NULL, NULL, krb5_afslog_uid_home(context, ccache, NULL, NULL,
pwd->pw_uid, pwd->pw_dir); pwd->pw_uid, pwd->pw_dir);
}
#endif #endif
out: out:
if(ret && !quiet) if(ret && !quiet)
printf ("%s\n", krb5_get_err_text (context, ret)); printf ("%s\n", krb5_get_err_text (context, ret));
return ret; return ret;