summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/lib/krb5/get_default_principal.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/lib/krb5/get_default_principal.c')
-rw-r--r--crypto/heimdal/lib/krb5/get_default_principal.c43
1 files changed, 30 insertions, 13 deletions
diff --git a/crypto/heimdal/lib/krb5/get_default_principal.c b/crypto/heimdal/lib/krb5/get_default_principal.c
index f8ed48f..83fb2b0 100644
--- a/crypto/heimdal/lib/krb5/get_default_principal.c
+++ b/crypto/heimdal/lib/krb5/get_default_principal.c
@@ -33,7 +33,7 @@
#include "krb5_locl.h"
-RCSID("$Id: get_default_principal.c,v 1.7 2001/05/14 06:14:46 assar Exp $");
+RCSID("$Id: get_default_principal.c 14870 2005-04-20 20:53:29Z lha $");
/*
* Try to find out what's a reasonable default principal.
@@ -50,23 +50,21 @@ get_env_user(void)
return user;
}
+/*
+ * Will only use operating-system dependant operation to get the
+ * default principal, for use of functions that in ccache layer to
+ * avoid recursive calls.
+ */
+
krb5_error_code
-krb5_get_default_principal (krb5_context context,
- krb5_principal *princ)
+_krb5_get_default_principal_local (krb5_context context,
+ krb5_principal *princ)
{
krb5_error_code ret;
- krb5_ccache id;
const char *user;
uid_t uid;
- 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;
- }
-
+ *princ = NULL;
uid = getuid();
if(uid == 0) {
@@ -93,6 +91,25 @@ krb5_get_default_principal (krb5_context context,
}
ret = krb5_make_principal(context, princ, NULL, user, NULL);
}
-
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;
+
+ *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);
+}
OpenPOWER on IntegriCloud