summaryrefslogtreecommitdiffstats
path: root/src/back-nis.c
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-09-10 13:24:43 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-09-10 13:24:43 -0400
commit2b21b27866b4772b281fb13f54c6bb03eb8a64d0 (patch)
tree57fcb5d383f378a1b90b4f44a4cb5d2eae1d569a /src/back-nis.c
parent61cc4a398bd96e012f772db5e14f46721790774a (diff)
downloadslapi-nis-2b21b27866b4772b281fb13f54c6bb03eb8a64d0.tar.gz
slapi-nis-2b21b27866b4772b281fb13f54c6bb03eb8a64d0.tar.xz
slapi-nis-2b21b27866b4772b281fb13f54c6bb03eb8a64d0.zip
- add another list of attributes and parents, for use in chasing and
tracking multi-hop backreferences
Diffstat (limited to 'src/back-nis.c')
-rw-r--r--src/back-nis.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/back-nis.c b/src/back-nis.c
index fe2e488..b5298d5 100644
--- a/src/back-nis.c
+++ b/src/back-nis.c
@@ -89,6 +89,7 @@ backend_free_set_data_contents(void *data)
format_free_attr_list(set_data->common.ref_attrs);
format_free_inref_attrs(set_data->common.inref_attrs);
format_free_ref_attr_list(set_data->common.ref_attr_list);
+ format_free_ref_attr_list(set_data->common.inref_attr_list);
free(set_data->common.entry_filter);
free(set_data->disallowed_chars);
backend_shr_free_strlist(set_data->key_formats);
@@ -126,6 +127,9 @@ backend_copy_set_data(const struct backend_set_data *data)
ret->common.ref_attr_list = data->common.ref_attr_list ?
format_dup_ref_attr_list(data->common.ref_attr_list) :
NULL;
+ ret->common.inref_attr_list = data->common.inref_attr_list ?
+ format_dup_ref_attr_list(data->common.inref_attr_list) :
+ NULL;
ret->disallowed_chars = data->disallowed_chars ?
strdup(data->disallowed_chars) : NULL;
ret->key_formats = backend_shr_dup_strlist(data->key_formats);
@@ -183,6 +187,7 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e,
char ***ref_attrs,
struct format_inref_attr ***inref_attrs,
struct format_ref_attr_list ***ref_attr_list,
+ struct format_ref_attr_list ***inref_attr_list,
unsigned int **ret_lengths,
unsigned int *ret_n_singles,
char ***ret_singles,
@@ -239,7 +244,7 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e,
single_formats[i],
disallowed_chars,
ref_attrs, inref_attrs,
- ref_attr_list,
+ ref_attr_list, inref_attr_list,
&single_lengths[i]);
if (singles[i] != NULL) {
n++;
@@ -267,7 +272,7 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e,
group_formats[i],
disallowed_chars,
ref_attrs, inref_attrs,
- ref_attr_list,
+ ref_attr_list, inref_attr_list,
&group_lengths[j]);
if (groups[j] != NULL) {
for (k = 0; groups[j][k] != NULL; k++) {
@@ -337,6 +342,7 @@ backend_set_entry(Slapi_Entry *e, struct backend_set_data *data)
&data->common.ref_attrs,
&data->common.inref_attrs,
&data->common.ref_attr_list,
+ &data->common.inref_attr_list,
&all_key_lengths,
&n_key_singles,
&key_singles,
@@ -352,6 +358,7 @@ backend_set_entry(Slapi_Entry *e, struct backend_set_data *data)
&data->common.ref_attrs,
&data->common.inref_attrs,
&data->common.ref_attr_list,
+ &data->common.inref_attr_list,
&all_value_lengths,
&n_value_singles,
&value_singles,
@@ -576,6 +583,7 @@ backend_set_config_read_config(struct plugin_state *state, Slapi_Entry *e,
ret.common.ref_attrs = NULL;
ret.common.inref_attrs = NULL;
ret.common.ref_attr_list = NULL;
+ ret.common.inref_attr_list = NULL;
ret.disallowed_chars = use_disallowed_chars;
ret.key_formats = use_key_formats;
ret.n_key_formats = 0;