Try to get realm of local host if no default realm is available.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2361 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -8,16 +8,31 @@ krb5_set_default_realm(krb5_context context,
|
|||||||
{
|
{
|
||||||
const char *foo;
|
const char *foo;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
char **realms = NULL;
|
||||||
|
|
||||||
if (realm == NULL)
|
if (realm == NULL){
|
||||||
foo = krb5_config_get_string (context->cf,
|
foo = krb5_config_get_string (context->cf,
|
||||||
"libdefaults",
|
"libdefaults",
|
||||||
"default_realm",
|
"default_realm",
|
||||||
NULL);
|
NULL);
|
||||||
else
|
if(foo == NULL){
|
||||||
|
krb5_error_code ret;
|
||||||
|
ret = krb5_get_host_realm(context, NULL, &realms);
|
||||||
|
if(ret)
|
||||||
|
return ret;
|
||||||
|
foo = realms[0];
|
||||||
|
}
|
||||||
|
} else
|
||||||
foo = realm;
|
foo = realm;
|
||||||
|
|
||||||
tmp = strdup (foo);
|
tmp = strdup (foo);
|
||||||
|
if(realms){
|
||||||
|
char **q;
|
||||||
|
for(q = realms; *q; q++)
|
||||||
|
free(*q);
|
||||||
|
free(realms);
|
||||||
|
}
|
||||||
|
|
||||||
if (tmp == NULL)
|
if (tmp == NULL)
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
context->default_realm = tmp;
|
context->default_realm = tmp;
|
||||||
|
Reference in New Issue
Block a user