with GSSEAP_DEFAULT_REALM environment variable
OM_uint32 major;
krb5_context krbContext;
krb5_principal krbPrinc;
OM_uint32 major;
krb5_context krbContext;
krb5_principal krbPrinc;
+ char *nameString, *realm;
+ int flags = 0;
GSSEAP_KRB_INIT(&krbContext);
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);
if (nameBuffer == GSS_C_NO_BUFFER) {
*minor = krb5_copy_principal(krbContext,
krbAnonymousPrincipal(), &krbPrinc);
if (GSS_ERROR(major))
return major;
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;
if (*minor != 0) {
GSSEAP_FREE(nameString);
return GSS_S_FAILURE;