diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/back-nis.c | 10 | ||||
-rw-r--r-- | src/back-sch.c | 7 | ||||
-rw-r--r-- | src/backend.h | 1 | ||||
-rw-r--r-- | src/format.c | 32 | ||||
-rw-r--r-- | src/format.h | 4 |
5 files changed, 36 insertions, 18 deletions
diff --git a/src/back-nis.c b/src/back-nis.c index 930bd77..fe2e488 100644 --- a/src/back-nis.c +++ b/src/back-nis.c @@ -88,6 +88,7 @@ backend_free_set_data_contents(void *data) backend_shr_free_strlist(set_data->common.bases); 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); free(set_data->common.entry_filter); free(set_data->disallowed_chars); backend_shr_free_strlist(set_data->key_formats); @@ -122,6 +123,9 @@ backend_copy_set_data(const struct backend_set_data *data) ret->common.inref_attrs = data->common.inref_attrs ? format_dup_inref_attrs(data->common.inref_attrs) : NULL; + ret->common.ref_attr_list = data->common.ref_attr_list ? + format_dup_ref_attr_list(data->common.ref_attr_list) : + NULL; ret->disallowed_chars = data->disallowed_chars ? strdup(data->disallowed_chars) : NULL; ret->key_formats = backend_shr_dup_strlist(data->key_formats); @@ -178,6 +182,7 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e, const char *disallowed_chars, char ***ref_attrs, struct format_inref_attr ***inref_attrs, + struct format_ref_attr_list ***ref_attr_list, unsigned int **ret_lengths, unsigned int *ret_n_singles, char ***ret_singles, @@ -234,6 +239,7 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e, single_formats[i], disallowed_chars, ref_attrs, inref_attrs, + ref_attr_list, &single_lengths[i]); if (singles[i] != NULL) { n++; @@ -261,6 +267,7 @@ backend_gather_data(struct plugin_state *state, Slapi_Entry *e, group_formats[i], disallowed_chars, ref_attrs, inref_attrs, + ref_attr_list, &group_lengths[j]); if (groups[j] != NULL) { for (k = 0; groups[j][k] != NULL; k++) { @@ -329,6 +336,7 @@ backend_set_entry(Slapi_Entry *e, struct backend_set_data *data) data->disallowed_chars, &data->common.ref_attrs, &data->common.inref_attrs, + &data->common.ref_attr_list, &all_key_lengths, &n_key_singles, &key_singles, @@ -343,6 +351,7 @@ backend_set_entry(Slapi_Entry *e, struct backend_set_data *data) data->disallowed_chars, &data->common.ref_attrs, &data->common.inref_attrs, + &data->common.ref_attr_list, &all_value_lengths, &n_value_singles, &value_singles, @@ -566,6 +575,7 @@ backend_set_config_read_config(struct plugin_state *state, Slapi_Entry *e, ret.common.entry_filter = use_entry_filter; ret.common.ref_attrs = NULL; ret.common.inref_attrs = NULL; + ret.common.ref_attr_list = NULL; ret.disallowed_chars = use_disallowed_chars; ret.key_formats = use_key_formats; ret.n_key_formats = 0; diff --git a/src/back-sch.c b/src/back-sch.c index ade426b..2f90630 100644 --- a/src/back-sch.c +++ b/src/back-sch.c @@ -92,6 +92,7 @@ backend_set_config_free_config_contents(void *data) free(set_data->common.bases); 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); free(set_data->common.entry_filter); slapi_sdn_free(&set_data->container_sdn); free(set_data->rdn_format); @@ -123,6 +124,9 @@ backend_copy_set_config(const struct backend_set_data *data) ret->common.inref_attrs = data->common.inref_attrs ? format_dup_inref_attrs(data->common.inref_attrs) : NULL; + ret->common.ref_attr_list = data->common.inref_attrs ? + format_dup_ref_attr_list(data->common.ref_attr_list) : + NULL; ret->common.entry_filter = strdup(data->common.entry_filter); ret->container_sdn = slapi_sdn_dup(data->container_sdn); ret->rdn_format = strdup(data->rdn_format); @@ -170,6 +174,7 @@ backend_set_config_read_config(struct plugin_state *state, Slapi_Entry *e, ret.common.entry_filter = entry_filter; ret.common.ref_attrs = NULL; ret.common.inref_attrs = NULL; + ret.common.ref_attr_list = NULL; dn = slapi_dn_plus_rdn(ret.common.group, ret.common.set); ret.container_sdn = slapi_sdn_new_dn_passin(dn); ret.rdn_format = rdn_format; @@ -267,6 +272,7 @@ backend_set_entry(Slapi_Entry *e, struct backend_set_data *data) data->rdn_format, NULL, &data->common.ref_attrs, &data->common.inref_attrs, + &data->common.ref_attr_list, &rdn_len); if (rdn == NULL) { slapi_log_error(SLAPI_LOG_PLUGIN, plugin_id, @@ -299,6 +305,7 @@ backend_set_entry(Slapi_Entry *e, struct backend_set_data *data) NULL, &data->common.ref_attrs, &data->common.inref_attrs, + &data->common.ref_attr_list, &ava_lens); if ((ava != NULL) && (ava_lens != NULL) && diff --git a/src/backend.h b/src/backend.h index cbc14fd..379296f 100644 --- a/src/backend.h +++ b/src/backend.h @@ -31,6 +31,7 @@ struct backend_shr_set_data { char *group, *set, **bases, *entry_filter; char **ref_attrs; struct format_inref_attr **inref_attrs; + struct format_ref_attr_list **ref_attr_list; struct backend_set_data *self; }; diff --git a/src/format.c b/src/format.c index eed14fa..36a6c42 100644 --- a/src/format.c +++ b/src/format.c @@ -63,7 +63,7 @@ static int format_expand(struct plugin_state *state, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list); + struct format_ref_attr_list ***ref_attr_list); static char * xstrndup(const char *start, size_t length) @@ -770,7 +770,7 @@ format_first(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { int ret, i, argc, first, common_length; char **argv, **values; @@ -848,7 +848,7 @@ format_deref(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { int i, j, ret, argc; Slapi_Entry *ref; @@ -1026,7 +1026,7 @@ format_referred(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { int i, ret, argc; Slapi_PBlock *local_pb; @@ -1161,7 +1161,7 @@ format_merge(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { int ret, i, j, argc, slen, count; unsigned int *lengths; @@ -1250,7 +1250,7 @@ format_match_generic(struct plugin_state *state, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list, + struct format_ref_attr_list ***ref_attr_list, const char *fnname, char * (*match_fn)(const char *pattern, const char *value, char **argv)) @@ -1458,7 +1458,7 @@ format_match(struct plugin_state *state, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { return format_match_generic(state, pb, e, group, set, args, 2, 2, disallowed, @@ -1490,7 +1490,7 @@ format_regmatch(struct plugin_state *state, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { return format_match_generic(state, pb, e, group, set, args, 2, 2, disallowed, @@ -1615,7 +1615,7 @@ format_regsub(struct plugin_state *state, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { return format_match_generic(state, pb, e, group, set, args, 3, 3, disallowed, @@ -1639,7 +1639,7 @@ format_lookup_fn(const char *fnname) struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list); + struct format_ref_attr_list ***ref_attr_list); } fns[] = { {"first", format_first}, {"deref", format_deref}, @@ -1927,7 +1927,7 @@ format_expand_simple(struct plugin_state *state, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { char *shortstart, *longstart, *shortend, *longend; struct berval tmp, **values; @@ -2117,7 +2117,7 @@ format_expand(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, char *outbuf, int outbuf_len, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list) + struct format_ref_attr_list ***ref_attr_list) { int i, j, used; const char *fmtstart, *fmtend, *match, *pair; @@ -2131,7 +2131,7 @@ format_expand(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, struct format_choice **outbuf_choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list); + struct format_ref_attr_list ***ref_attr_list); spd_id = state->plugin_desc->spd_id; @@ -2346,7 +2346,7 @@ format_format(struct plugin_state *state, Slapi_Entry *e, const char *fmt, const char *disallowed, struct format_choice **choices, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list, + struct format_ref_attr_list ***ref_attr_list, unsigned int *data_length) { Slapi_PBlock *pb; @@ -2433,7 +2433,7 @@ format_get_data(struct plugin_state *state, Slapi_Entry *e, const char *fmt, const char *disallowed, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list, + struct format_ref_attr_list ***ref_attr_list, unsigned int *data_length) { unsigned int ignored; @@ -2460,7 +2460,7 @@ format_get_data_set(struct plugin_state *state, Slapi_Entry *e, const char *fmt, const char *disallowed, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list, + struct format_ref_attr_list ***ref_attr_list, unsigned int **data_lengths) { struct format_choice *choices, *this_choice; diff --git a/src/format.h b/src/format.h index 21763a4..4cdb2ce 100644 --- a/src/format.h +++ b/src/format.h @@ -55,7 +55,7 @@ char *format_get_data(struct plugin_state *state, struct slapi_entry *e, const char *disallowed_chars, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list, + struct format_ref_attr_list ***ref_attr_list, unsigned int *data_length); void format_free_data_set(char **data_set, unsigned int *data_lengths); char **format_get_data_set(struct plugin_state *state, Slapi_Entry *e, @@ -64,7 +64,7 @@ char **format_get_data_set(struct plugin_state *state, Slapi_Entry *e, const char *disallowed, char ***ref_attrs, struct format_inref_attr ***inref_attrs, - struct format_ref_attr_list **ref_attr_list, + struct format_ref_attr_list ***ref_attr_list, unsigned int **data_lengths); char *format_escape_for_filter(const char *unescaped); |