From: Luke Howard Date: Thu, 17 Mar 2011 15:50:45 +0000 (+1100) Subject: for now, allow default GSS EAP realm to be set X-Git-Tag: dvd/201105~12^2~95 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.orig;a=commitdiff_plain;h=51d1b18e88d72eb9d2b7e9d65e4cebc3dacf89a2 for now, allow default GSS EAP realm to be set with GSSEAP_DEFAULT_REALM environment variable --- diff --git a/util_name.c b/util_name.c index fa5b108..daa059f 100644 --- a/util_name.c +++ b/util_name.c @@ -196,10 +196,20 @@ importUserName(OM_uint32 *minor, OM_uint32 major; krb5_context krbContext; krb5_principal krbPrinc; - char *nameString; + char *nameString, *realm; + int flags = 0; GSSEAP_KRB_INIT(&krbContext); + realm = getenv("GSSEAP_DEFAULT_REALM"); + if (realm != NULL) { + *minor = krb5_set_default_realm(krbContext, realm); + if (*minor != 0) + return GSS_S_FAILURE; + } else { + flags |= KRB5_PRINCIPAL_PARSE_REQUIRE_REALM; + } + if (nameBuffer == GSS_C_NO_BUFFER) { *minor = krb5_copy_principal(krbContext, krbAnonymousPrincipal(), &krbPrinc); @@ -210,9 +220,7 @@ importUserName(OM_uint32 *minor, if (GSS_ERROR(major)) return major; - *minor = krb5_parse_name_flags(krbContext, nameString, - KRB5_PRINCIPAL_PARSE_REQUIRE_REALM, - &krbPrinc); + *minor = krb5_parse_name_flags(krbContext, nameString, flags, &krbPrinc); if (*minor != 0) { GSSEAP_FREE(nameString); return GSS_S_FAILURE;