diff options
author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-09-08 18:46:39 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-09-08 18:46:39 -0400 |
commit | 83bb73c94b07f3ded16d6348e75ecd9de732068c (patch) | |
tree | a6608bc7e6443723a81a87ee31c3caea864fcf16 /src | |
parent | 49dcee1148fe2eed4023835e71c847143d24cf25 (diff) | |
download | slapi-nis-83bb73c94b07f3ded16d6348e75ecd9de732068c.tar.gz slapi-nis-83bb73c94b07f3ded16d6348e75ecd9de732068c.tar.xz slapi-nis-83bb73c94b07f3ded16d6348e75ecd9de732068c.zip |
- add a way to create an SDN list using an array of strings
Diffstat (limited to 'src')
-rw-r--r-- | src/format.c | 24 | ||||
-rw-r--r-- | src/format.h | 5 |
2 files changed, 26 insertions, 3 deletions
diff --git a/src/format.c b/src/format.c index 8db5d0a..c0fa859 100644 --- a/src/format.c +++ b/src/format.c @@ -102,7 +102,7 @@ xmemdup(char *region, int size) } /* Maintain a DN list, which is list of distinguished names. */ -static void +void format_free_sdn_list(struct slapi_dn **list) { unsigned int i; @@ -114,7 +114,7 @@ format_free_sdn_list(struct slapi_dn **list) } } -static struct slapi_dn ** +struct slapi_dn ** format_dup_sdn_list(struct slapi_dn **list) { struct slapi_dn **ret; @@ -132,7 +132,25 @@ format_dup_sdn_list(struct slapi_dn **list) return ret; } -static struct slapi_dn ** +struct slapi_dn ** +format_make_sdn_list(char **list) +{ + struct slapi_dn **ret; + unsigned int i; + for (i = 0; (list != NULL) && (list[i] != NULL); i++) { + continue; + } + ret = malloc((i + 1) * sizeof(struct slapi_dn*)); + if (ret != NULL) { + for (i = 0; (list != NULL) && (list[i] != NULL); i++) { + ret[i] = slapi_sdn_new_dn_byval(list[i]); + } + ret[i] = NULL; + } + return ret; +} + +struct slapi_dn ** format_add_sdn_list(struct slapi_dn ***list, const char *dn) { struct slapi_dn **ret, *sdn; diff --git a/src/format.h b/src/format.h index 4cdb2ce..7f33133 100644 --- a/src/format.h +++ b/src/format.h @@ -48,6 +48,11 @@ void format_free_ref_attr_list(struct format_ref_attr_list **); struct format_ref_attr_list ** format_dup_ref_attr_list(struct format_ref_attr_list **); +void format_free_sdn_list(struct slapi_dn **list); +struct slapi_dn **format_dup_sdn_list(struct slapi_dn **list); +struct slapi_dn **format_make_sdn_list(char **list); +struct slapi_dn **format_add_sdn_list(struct slapi_dn ***list, const char *dn); + void format_free_data(char *data); char *format_get_data(struct plugin_state *state, struct slapi_entry *e, const char *domain, const char *map, |