summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-09-08 16:09:12 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-09-08 16:09:12 -0400
commit1ba33e37efaa0545f5d08b6f0e8a5e73ef9bfc63 (patch)
treec00d117b9d3b98fe977bc85c85b3a75111079e2c
parent362b02b2e7eff0d4060cb698c57dd4b5a3f2957c (diff)
downloadslapi-nis-1ba33e37efaa0545f5d08b6f0e8a5e73ef9bfc63.tar.gz
slapi-nis-1ba33e37efaa0545f5d08b6f0e8a5e73ef9bfc63.tar.xz
slapi-nis-1ba33e37efaa0545f5d08b6f0e8a5e73ef9bfc63.zip
- wire the format_ref_attr_list structure into the two plugins
-rw-r--r--src/back-nis.c10
-rw-r--r--src/back-sch.c7
-rw-r--r--src/backend.h1
-rw-r--r--src/format.c32
-rw-r--r--src/format.h4
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);