add default v4_name_convert entries
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5926 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997-1999 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -502,6 +502,54 @@ krb5_realm_compare(krb5_context context,
|
||||
return strcmp(princ_realm(princ1), princ_realm(princ2)) == 0;
|
||||
}
|
||||
|
||||
struct v4_name_convert {
|
||||
const char *from;
|
||||
const char *to;
|
||||
} default_v4_name_convert[] = {
|
||||
{ "ftp", "ftp" },
|
||||
{ "hprop", "hprop" },
|
||||
{ "pop", "pop" },
|
||||
{ "rcmd", "host" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
static const char*
|
||||
get_name_conversion(krb5_context context, const char *realm, const char *name)
|
||||
{
|
||||
struct v4_name_convert *q;
|
||||
const char *p;
|
||||
p = krb5_config_get_string(context, NULL, "realms", realm,
|
||||
"v4_name_convert", "host", name, NULL);
|
||||
if(p == NULL)
|
||||
p = krb5_config_get_string(context, NULL, "libdefaults",
|
||||
"v4_name_convert", "host", name, NULL);
|
||||
if(p)
|
||||
return p;
|
||||
|
||||
/* XXX should be possible to override default list */
|
||||
p = krb5_config_get_string(context, NULL,
|
||||
"realms",
|
||||
realm,
|
||||
"v4_name_convert",
|
||||
"plain",
|
||||
name,
|
||||
NULL);
|
||||
if(p)
|
||||
return NULL;
|
||||
p = krb5_config_get_string(context, NULL,
|
||||
"libdefaults",
|
||||
"v4_name_convert",
|
||||
"plain",
|
||||
name,
|
||||
NULL);
|
||||
if(p)
|
||||
return NULL;
|
||||
for(q = default_v4_name_convert; q->from; q++)
|
||||
if(strcmp(q->from, name) == 0)
|
||||
return q->to;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
krb5_error_code
|
||||
krb5_425_conv_principal_ext(krb5_context context,
|
||||
const char *name,
|
||||
@@ -530,11 +578,7 @@ krb5_425_conv_principal_ext(krb5_context context,
|
||||
instance = NULL;
|
||||
goto no_host;
|
||||
}
|
||||
p = krb5_config_get_string(context, NULL, "realms", realm,
|
||||
"v4_name_convert", "host", name, NULL);
|
||||
if(p == NULL)
|
||||
p = krb5_config_get_string(context, NULL, "libdefaults",
|
||||
"v4_name_convert", "host", name, NULL);
|
||||
p = get_name_conversion(context, realm, name);
|
||||
if(p == NULL)
|
||||
goto no_host;
|
||||
name = p;
|
||||
|
Reference in New Issue
Block a user