Add context to all krb5_config_*get_*.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@4256 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -80,7 +80,8 @@ _kadm5_c_init_context(kadm5_client_context **ctx,
|
||||
if(params->mask & KADM5_CONFIG_ADMIN_SERVER)
|
||||
(*ctx)->admin_server = strdup(params->admin_server);
|
||||
else{
|
||||
const char *h = krb5_config_get_string(context->cf,
|
||||
const char *h = krb5_config_get_string(context,
|
||||
NULL,
|
||||
"realms",
|
||||
(*ctx)->realm,
|
||||
"admin_server",
|
||||
|
@@ -359,7 +359,8 @@ krb5_config_file_free (krb5_config_section *s)
|
||||
}
|
||||
|
||||
const void *
|
||||
krb5_config_get_next (krb5_config_section *c,
|
||||
krb5_config_get_next (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
krb5_config_binding **pointer,
|
||||
int type,
|
||||
...)
|
||||
@@ -368,13 +369,14 @@ krb5_config_get_next (krb5_config_section *c,
|
||||
va_list args;
|
||||
|
||||
va_start(args, type);
|
||||
ret = krb5_config_vget_next (c, pointer, type, args);
|
||||
ret = krb5_config_vget_next (context, c, pointer, type, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const void *
|
||||
krb5_config_vget_next (krb5_config_section *c,
|
||||
krb5_config_vget_next (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
krb5_config_binding **pointer,
|
||||
int type,
|
||||
va_list args)
|
||||
@@ -386,7 +388,7 @@ krb5_config_vget_next (krb5_config_section *c,
|
||||
return NULL;
|
||||
|
||||
if (*pointer == NULL) {
|
||||
b = c;
|
||||
b = (c != NULL) ? c : context->cf;
|
||||
p = va_arg(args, const char *);
|
||||
if (p == NULL)
|
||||
return NULL;
|
||||
@@ -418,7 +420,8 @@ krb5_config_vget_next (krb5_config_section *c,
|
||||
}
|
||||
|
||||
const void *
|
||||
krb5_config_get (krb5_config_section *c,
|
||||
krb5_config_get (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
int type,
|
||||
...)
|
||||
{
|
||||
@@ -426,97 +429,121 @@ krb5_config_get (krb5_config_section *c,
|
||||
va_list args;
|
||||
|
||||
va_start(args, type);
|
||||
ret = krb5_config_vget (c, type, args);
|
||||
ret = krb5_config_vget (context, c, type, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const void *
|
||||
krb5_config_vget (krb5_config_section *c,
|
||||
krb5_config_vget (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
int type,
|
||||
va_list args)
|
||||
{
|
||||
krb5_config_binding *foo = NULL;
|
||||
|
||||
return krb5_config_vget_next (c, &foo, type, args);
|
||||
return krb5_config_vget_next (context, c, &foo, type, args);
|
||||
}
|
||||
|
||||
const krb5_config_binding *
|
||||
krb5_config_get_list (krb5_config_section *c,
|
||||
krb5_config_get_list (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
...)
|
||||
{
|
||||
const krb5_config_binding *ret;
|
||||
va_list args;
|
||||
|
||||
va_start(args, c);
|
||||
ret = krb5_config_vget_list (c, args);
|
||||
ret = krb5_config_vget_list (context, c, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const krb5_config_binding *
|
||||
krb5_config_vget_list (krb5_config_section *c,
|
||||
krb5_config_vget_list (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
va_list args)
|
||||
{
|
||||
return krb5_config_vget (c, krb5_config_list, args);
|
||||
return krb5_config_vget (context, c, krb5_config_list, args);
|
||||
}
|
||||
|
||||
const char *
|
||||
krb5_config_get_string (krb5_config_section *c,
|
||||
krb5_config_get_string (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
...)
|
||||
{
|
||||
const char *ret;
|
||||
va_list args;
|
||||
|
||||
va_start(args, c);
|
||||
ret = krb5_config_vget_string (c, args);
|
||||
ret = krb5_config_vget_string (context, c, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
|
||||
const char *
|
||||
krb5_config_vget_string (krb5_config_section *c,
|
||||
krb5_config_vget_string (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
va_list args)
|
||||
{
|
||||
return krb5_config_vget (c, krb5_config_string, args);
|
||||
return krb5_config_vget (context, c, krb5_config_string, args);
|
||||
}
|
||||
|
||||
char **
|
||||
krb5_config_vget_strings(krb5_config_section *c,
|
||||
krb5_config_vget_strings(krb5_context context,
|
||||
krb5_config_section *c,
|
||||
va_list args)
|
||||
{
|
||||
char **strings = NULL;
|
||||
int nstr = 0;
|
||||
krb5_config_binding *b = NULL;
|
||||
const char *p;
|
||||
while((p = krb5_config_vget_next(c, &b, krb5_config_string, args))){
|
||||
while((p = krb5_config_vget_next(context, c, &b,
|
||||
krb5_config_string, args))){
|
||||
char *tmp = strdup(p);
|
||||
char *pos = NULL;
|
||||
char *s;
|
||||
if(tmp == NULL)
|
||||
goto cleanup;
|
||||
s = strtok_r(tmp, " \t", &pos);
|
||||
while(s){
|
||||
strings = realloc(strings, (nstr + 1) * sizeof(*strings));
|
||||
char **tmp = realloc(strings, (nstr + 1) * sizeof(*strings));
|
||||
if(tmp == NULL)
|
||||
goto cleanup;
|
||||
strings = tmp;
|
||||
strings[nstr] = strdup(s);
|
||||
nstr++;
|
||||
if(strings[nstr-1] == NULL)
|
||||
goto cleanup;
|
||||
s = strtok_r(NULL, " \t", &pos);
|
||||
}
|
||||
free(tmp);
|
||||
}
|
||||
if(nstr){
|
||||
strings = realloc(strings, (nstr + 1) * sizeof(*strings));
|
||||
char **tmp = realloc(strings, (nstr + 1) * sizeof(*strings));
|
||||
if(strings == NULL)
|
||||
goto cleanup;
|
||||
strings = tmp;
|
||||
strings[nstr] = NULL;
|
||||
}
|
||||
return strings;
|
||||
cleanup:
|
||||
while(nstr--)
|
||||
free(strings[nstr]);
|
||||
free(strings);
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
||||
char**
|
||||
krb5_config_get_strings(krb5_config_section *c,
|
||||
krb5_config_get_strings(krb5_context context,
|
||||
krb5_config_section *c,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
char **ret;
|
||||
va_start(ap, c);
|
||||
ret = krb5_config_vget_strings(c, ap);
|
||||
ret = krb5_config_vget_strings(context, c, ap);
|
||||
va_end(ap);
|
||||
return ret;
|
||||
}
|
||||
@@ -533,37 +560,42 @@ krb5_config_free_strings(char **strings)
|
||||
}
|
||||
|
||||
krb5_boolean
|
||||
krb5_config_vget_bool (krb5_config_section *c,
|
||||
krb5_config_vget_bool (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
va_list args)
|
||||
{
|
||||
const char *str;
|
||||
str = krb5_config_vget_string (c, args);
|
||||
str = krb5_config_vget_string (context, c, args);
|
||||
if(str == NULL)
|
||||
return FALSE;
|
||||
if(strcmp(str, "yes") == 0 || strcmp(str, "true") == 0 || atoi(str))
|
||||
if(strcasecmp(str, "yes") == 0 ||
|
||||
strcasecmp(str, "true") == 0 ||
|
||||
atoi(str))
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
krb5_boolean
|
||||
krb5_config_get_bool (krb5_config_section *c,
|
||||
krb5_config_get_bool (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
krb5_boolean ret;
|
||||
va_start(ap, c);
|
||||
ret = krb5_config_vget_bool(c, ap);
|
||||
ret = krb5_config_vget_bool(context, c, ap);
|
||||
va_end(ap);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
krb5_config_vget_time (krb5_config_section *c,
|
||||
krb5_config_vget_time (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
va_list args)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
str = krb5_config_vget_string (c, args);
|
||||
str = krb5_config_vget_string (context, c, args);
|
||||
if (str == NULL)
|
||||
return -1;
|
||||
else
|
||||
@@ -571,25 +603,27 @@ krb5_config_vget_time (krb5_config_section *c,
|
||||
}
|
||||
|
||||
int
|
||||
krb5_config_get_time (krb5_config_section *c,
|
||||
krb5_config_get_time (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
...)
|
||||
{
|
||||
int ret;
|
||||
va_list args;
|
||||
|
||||
va_start(args, c);
|
||||
ret = krb5_config_vget_time (c, args);
|
||||
ret = krb5_config_vget_time (context, c, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
krb5_config_vget_int (krb5_config_section *c,
|
||||
krb5_config_vget_int (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
va_list args)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
str = krb5_config_vget_string (c, args);
|
||||
str = krb5_config_vget_string (context, c, args);
|
||||
if (str == NULL)
|
||||
return -1;
|
||||
else {
|
||||
@@ -605,14 +639,15 @@ krb5_config_vget_int (krb5_config_section *c,
|
||||
}
|
||||
|
||||
int
|
||||
krb5_config_get_int (krb5_config_section *c,
|
||||
krb5_config_get_int (krb5_context context,
|
||||
krb5_config_section *c,
|
||||
...)
|
||||
{
|
||||
int ret;
|
||||
va_list args;
|
||||
|
||||
va_start(args, c);
|
||||
ret = krb5_config_vget_int (c, args);
|
||||
ret = krb5_config_vget_int (context, c, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
@@ -685,17 +720,17 @@ main(void)
|
||||
printf ("%d\n", krb5_config_parse_file ("/etc/krb5.conf", &c));
|
||||
print_config (stdout, c);
|
||||
printf ("[libdefaults]ticket_lifetime = %s\n",
|
||||
krb5_config_get_string (c,
|
||||
krb5_config_get_string (context, c,
|
||||
"libdefaults",
|
||||
"ticket_lifetime",
|
||||
NULL));
|
||||
printf ("[realms]foo = %s\n",
|
||||
krb5_config_get_string (c,
|
||||
krb5_config_get_string (context, c,
|
||||
"realms",
|
||||
"foo",
|
||||
NULL));
|
||||
printf ("[realms]ATHENA.MIT.EDU/v4_instance_convert/lithium = %s\n",
|
||||
krb5_config_get_string (c,
|
||||
krb5_config_get_string (context, c,
|
||||
"realms",
|
||||
"ATHENA.MIT.EDU",
|
||||
"v4_instance_convert",
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -60,17 +60,17 @@ krb5_init_context(krb5_context *context)
|
||||
else
|
||||
krb5_config_parse_file (krb5_config_file, &p->cf);
|
||||
p->max_skew = 5 * 60;
|
||||
val = krb5_config_get_time (p->cf, "libdefaults", "clockskew", NULL);
|
||||
val = krb5_config_get_time (p, NULL, "libdefaults", "clockskew", NULL);
|
||||
if (val >= 0)
|
||||
p->max_skew = val;
|
||||
|
||||
p->kdc_timeout = 3;
|
||||
val = krb5_config_get_time (p->cf, "libdefaults", "kdc_timeout", NULL);
|
||||
val = krb5_config_get_time (p, NULL, "libdefaults", "kdc_timeout", NULL);
|
||||
if(val >= 0)
|
||||
p->kdc_timeout = val;
|
||||
|
||||
p->max_retries = 3;
|
||||
val = krb5_config_get_int (p->cf, "libdefaults", "max_retries", NULL);
|
||||
val = krb5_config_get_int (p, NULL, "libdefaults", "max_retries", NULL);
|
||||
if (val >= 0)
|
||||
p->max_retries = val;
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -87,7 +87,7 @@ krb5_get_host_realm(krb5_context context,
|
||||
(*realms)[0] = NULL;
|
||||
(*realms)[1] = NULL;
|
||||
|
||||
for(l = krb5_config_get_list (context->cf,
|
||||
for(l = krb5_config_get_list (context, NULL,
|
||||
"domain_realm",
|
||||
NULL);
|
||||
l;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -48,14 +48,14 @@ get_config_time (krb5_context context,
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = krb5_config_get_time (context->cf,
|
||||
ret = krb5_config_get_time (context, NULL,
|
||||
"realms",
|
||||
realm,
|
||||
name,
|
||||
NULL);
|
||||
if (ret >= 0)
|
||||
return ret;
|
||||
ret = krb5_config_get_time (context->cf,
|
||||
ret = krb5_config_get_time (context, NULL,
|
||||
"libdefaults",
|
||||
name,
|
||||
NULL);
|
||||
@@ -69,12 +69,14 @@ get_config_bool (krb5_context context,
|
||||
char *realm,
|
||||
char *name)
|
||||
{
|
||||
return krb5_config_get_bool (context->cf,
|
||||
return krb5_config_get_bool (context,
|
||||
NULL,
|
||||
"realms",
|
||||
realm,
|
||||
name,
|
||||
NULL)
|
||||
|| krb5_config_get_bool (context->cf,
|
||||
|| krb5_config_get_bool (context,
|
||||
NULL,
|
||||
"libdefaults",
|
||||
name,
|
||||
NULL);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -325,9 +325,9 @@ krb5_openlog(krb5_context context,
|
||||
if(ret)
|
||||
return ret;
|
||||
|
||||
p = krb5_config_get_strings(context->cf, "logging", program, NULL);
|
||||
p = krb5_config_get_strings(context, NULL, "logging", program, NULL);
|
||||
if(p == NULL)
|
||||
p = krb5_config_get_strings(context->cf, "logging", "default", NULL);
|
||||
p = krb5_config_get_strings(context, NULL, "logging", "default", NULL);
|
||||
if(p){
|
||||
for(q = p; *q; q++)
|
||||
ret = krb5_addlog_dest(context, *fac, *q);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -476,15 +476,15 @@ krb5_425_conv_principal_ext(krb5_context context,
|
||||
instance = NULL;
|
||||
goto no_host;
|
||||
}
|
||||
p = krb5_config_get_string(context->cf, "realms", realm,
|
||||
p = krb5_config_get_string(context, NULL, "realms", realm,
|
||||
"v4_name_convert", "host", name, NULL);
|
||||
if(p == NULL)
|
||||
p = krb5_config_get_string(context->cf, "libdefaults",
|
||||
p = krb5_config_get_string(context, NULL, "libdefaults",
|
||||
"v4_name_convert", "host", name, NULL);
|
||||
if(p == NULL)
|
||||
goto no_host;
|
||||
name = p;
|
||||
p = krb5_config_get_string(context->cf, "realms", realm,
|
||||
p = krb5_config_get_string(context, NULL, "realms", realm,
|
||||
"v4_instance_convert", instance, NULL);
|
||||
if(p){
|
||||
instance = p;
|
||||
@@ -512,7 +512,7 @@ krb5_425_conv_principal_ext(krb5_context context,
|
||||
}
|
||||
{
|
||||
char **domains, **d;
|
||||
domains = krb5_config_get_strings(context->cf, "realms", realm,
|
||||
domains = krb5_config_get_strings(context, NULL, "realms", realm,
|
||||
"v4_domains", NULL);
|
||||
for(d = domains; d && *d; d++){
|
||||
snprintf(host, sizeof(host), "%s.%s", instance, *d);
|
||||
@@ -528,7 +528,7 @@ krb5_425_conv_principal_ext(krb5_context context,
|
||||
}
|
||||
|
||||
|
||||
p = krb5_config_get_string(context->cf, "realms", realm,
|
||||
p = krb5_config_get_string(context, NULL, "realms", realm,
|
||||
"default_domain", NULL);
|
||||
if(p == NULL){
|
||||
/* should this be an error or should it silently
|
||||
@@ -545,7 +545,7 @@ krb5_425_conv_principal_ext(krb5_context context,
|
||||
krb5_free_principal(context, pr);
|
||||
return HEIM_ERR_V4_PRINC_NO_CONV;
|
||||
no_host:
|
||||
p = krb5_config_get_string(context->cf,
|
||||
p = krb5_config_get_string(context, NULL,
|
||||
"realms",
|
||||
realm,
|
||||
"v4_name_convert",
|
||||
@@ -553,7 +553,7 @@ no_host:
|
||||
name,
|
||||
NULL);
|
||||
if(p == NULL)
|
||||
p = krb5_config_get_string(context->cf,
|
||||
p = krb5_config_get_string(context, NULL,
|
||||
"libdefaults",
|
||||
"v4_name_convert",
|
||||
"plain",
|
||||
@@ -578,7 +578,8 @@ krb5_425_conv_principal(krb5_context context,
|
||||
const char *realm,
|
||||
krb5_principal *princ)
|
||||
{
|
||||
krb5_boolean resolve = krb5_config_get_bool(context->cf,
|
||||
krb5_boolean resolve = krb5_config_get_bool(context,
|
||||
NULL,
|
||||
"libdefaults",
|
||||
"v4_instance_resolve",
|
||||
NULL);
|
||||
@@ -593,14 +594,16 @@ name_convert(krb5_context context, const char *name, const char *realm,
|
||||
const char *section)
|
||||
{
|
||||
const krb5_config_binding *l;
|
||||
l = krb5_config_get_list (context->cf,
|
||||
l = krb5_config_get_list (context,
|
||||
NULL,
|
||||
"realms",
|
||||
realm,
|
||||
"v4_name_convert",
|
||||
section,
|
||||
NULL);
|
||||
if(l == NULL)
|
||||
l = krb5_config_get_list (context->cf,
|
||||
l = krb5_config_get_list (context,
|
||||
NULL,
|
||||
"libdefaults",
|
||||
"v4_name_convert",
|
||||
section,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -49,7 +49,7 @@ krb5_set_default_realm(krb5_context context,
|
||||
char **realms = NULL;
|
||||
|
||||
if (realm == NULL){
|
||||
foo = krb5_config_get_string (context->cf,
|
||||
foo = krb5_config_get_string (context, NULL,
|
||||
"libdefaults",
|
||||
"default_realm",
|
||||
NULL);
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska H<>gskolan
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska H<>gskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@@ -155,7 +155,8 @@ krb5_verify_init_creds(krb5_context context,
|
||||
if (ret) {
|
||||
if (((options->flags & KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL) &&
|
||||
options->ap_req_nofail == 1) ||
|
||||
krb5_config_get_bool (context->cf,
|
||||
krb5_config_get_bool (context,
|
||||
NULL,
|
||||
"libdefaults",
|
||||
"verify_ap_req_nofail",
|
||||
NULL)) {
|
||||
|
Reference in New Issue
Block a user