From 0e5b21d56f06f690aebd0b6a427ee336dc43a101 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Thu, 31 May 2001 15:25:59 +0000 Subject: [PATCH] (krb5_to4): look for [realms]krb4_get_tickets to decide whether to get kerberos 4 tickets git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@10018 ec53bebd-3082-4978-b11e-865c3cabbd6b --- appl/login/login.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/appl/login/login.c b/appl/login/login.c index 139959dc2..0a4844b05 100644 --- a/appl/login/login.c +++ b/appl/login/login.c @@ -174,10 +174,29 @@ krb5_verify(struct passwd *pwd, const char *password) static krb5_error_code krb5_to4 (krb5_ccache id) { - if (krb5_config_get_bool(context, NULL, - "libdefaults", - "krb4_get_tickets", - NULL)) { + krb5_error_code ret; + krb5_principal princ; + + 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); + if (ret == 0) { + get_v4_tgt = krb5_config_get_bool_default(context, NULL, + get_v4_tgt, + "realms", + krb5_princ_realm(context, + princ), + "krb4_get_tickets", + NULL); + krb5_free_principal(context, princ); + } + + if (get_v4_tgt) { CREDENTIALS c; krb5_creds mcred, cred; char krb4tkfile[MAXPATHLEN];