Added krb5_config_v?get_list
Fixed krb5_config_vget_next git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2148 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -202,7 +202,7 @@ print_config (FILE *f, krb5_config_section *c)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const void *
|
||||||
krb5_config_get_next (krb5_config_section *c,
|
krb5_config_get_next (krb5_config_section *c,
|
||||||
krb5_config_binding **pointer,
|
krb5_config_binding **pointer,
|
||||||
int type,
|
int type,
|
||||||
@@ -217,7 +217,7 @@ krb5_config_get_next (krb5_config_section *c,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const void *
|
||||||
krb5_config_vget_next (krb5_config_section *c,
|
krb5_config_vget_next (krb5_config_section *c,
|
||||||
krb5_config_binding **pointer,
|
krb5_config_binding **pointer,
|
||||||
int type,
|
int type,
|
||||||
@@ -228,49 +228,28 @@ krb5_config_vget_next (krb5_config_section *c,
|
|||||||
|
|
||||||
if (*pointer == NULL) {
|
if (*pointer == NULL) {
|
||||||
b = c;
|
b = c;
|
||||||
|
p = va_arg(args, const char *);
|
||||||
|
if (p == NULL)
|
||||||
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
b = *pointer;
|
b = *pointer;
|
||||||
|
p = b->name;
|
||||||
|
b = b->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = va_arg(args, const char *);
|
|
||||||
if (p == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
while (b) {
|
while (b) {
|
||||||
if (strcmp (b->name, p) == 0) {
|
if (strcmp (b->name, p) == 0) {
|
||||||
p = va_arg(args, const char *);
|
if (*pointer == NULL)
|
||||||
if (b->type == STRING) {
|
p = va_arg(args, const char *);
|
||||||
if (type == STRING) {
|
else
|
||||||
if (p == NULL) {
|
p = NULL;
|
||||||
*pointer = b;
|
if (type == b->type && p == NULL) {
|
||||||
return b->u.string;
|
*pointer = b;
|
||||||
} else {
|
return b->u.generic;
|
||||||
return NULL;
|
} else if(b->type == LIST && p != NULL) {
|
||||||
}
|
b = b->u.list;
|
||||||
} else if (type == LIST) {
|
|
||||||
return NULL;
|
|
||||||
} else {
|
|
||||||
abort ();
|
|
||||||
}
|
|
||||||
} else if(b->type == LIST) {
|
|
||||||
if (type == STRING) {
|
|
||||||
if (p == NULL) {
|
|
||||||
return NULL;
|
|
||||||
} else {
|
|
||||||
b = b->u.list;
|
|
||||||
}
|
|
||||||
} else if (type == LIST) {
|
|
||||||
if (p == NULL) {
|
|
||||||
*pointer = b;
|
|
||||||
return b->u.string; /* XXX */
|
|
||||||
} else {
|
|
||||||
b = b->u.list;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
abort ();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
abort ();
|
return NULL;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
b = b->next;
|
b = b->next;
|
||||||
@@ -279,6 +258,28 @@ krb5_config_vget_next (krb5_config_section *c,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const krb5_config_binding *
|
||||||
|
krb5_config_get_list (krb5_config_section *c,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
const krb5_config_binding *ret;
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start(args, c);
|
||||||
|
ret = krb5_config_vget_list (c, args);
|
||||||
|
va_end(args);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
const krb5_config_binding *
|
||||||
|
krb5_config_vget_list (krb5_config_section *c,
|
||||||
|
va_list args)
|
||||||
|
{
|
||||||
|
krb5_config_binding *foo = NULL;
|
||||||
|
return (const krb5_config_binding *)
|
||||||
|
krb5_config_vget_next(c, &foo, LIST, args);
|
||||||
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
krb5_config_get_string (krb5_config_section *c,
|
krb5_config_get_string (krb5_config_section *c,
|
||||||
...)
|
...)
|
||||||
|
Reference in New Issue
Block a user