(_krb5_get_default_principal_local): add, for use of functions that in
ccache layer to avoid recursive calls. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14831 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -50,23 +50,21 @@ get_env_user(void)
|
|||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
krb5_error_code KRB5_LIB_FUNCTION
|
/*
|
||||||
krb5_get_default_principal (krb5_context context,
|
* Will only use operating-system dependant operation to get the
|
||||||
krb5_principal *princ)
|
* default principal, for use of functions that in ccache layer to
|
||||||
|
* avoid recursive calls.
|
||||||
|
*/
|
||||||
|
|
||||||
|
krb5_error_code
|
||||||
|
_krb5_get_default_principal_local (krb5_context context,
|
||||||
|
krb5_principal *princ)
|
||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
krb5_ccache id;
|
|
||||||
const char *user;
|
const char *user;
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
|
|
||||||
ret = krb5_cc_default (context, &id);
|
*princ = NULL;
|
||||||
if (ret == 0) {
|
|
||||||
ret = krb5_cc_get_principal (context, id, princ);
|
|
||||||
krb5_cc_close (context, id);
|
|
||||||
if (ret == 0)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
uid = getuid();
|
uid = getuid();
|
||||||
if(uid == 0) {
|
if(uid == 0) {
|
||||||
@@ -93,6 +91,27 @@ krb5_get_default_principal (krb5_context context,
|
|||||||
}
|
}
|
||||||
ret = krb5_make_principal(context, princ, NULL, user, NULL);
|
ret = krb5_make_principal(context, princ, NULL, user, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
krb5_error_code KRB5_LIB_FUNCTION
|
||||||
|
krb5_get_default_principal (krb5_context context,
|
||||||
|
krb5_principal *princ)
|
||||||
|
{
|
||||||
|
krb5_error_code ret;
|
||||||
|
krb5_ccache id;
|
||||||
|
const char *user;
|
||||||
|
uid_t uid;
|
||||||
|
|
||||||
|
*princ = NULL;
|
||||||
|
|
||||||
|
ret = krb5_cc_default (context, &id);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = krb5_cc_get_principal (context, id, princ);
|
||||||
|
krb5_cc_close (context, id);
|
||||||
|
if (ret == 0)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _krb5_get_default_principal_local(context, princ);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user