summaryrefslogtreecommitdiffstats
path: root/src/back-shr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/back-shr.c')
-rw-r--r--src/back-shr.c65
1 files changed, 31 insertions, 34 deletions
diff --git a/src/back-shr.c b/src/back-shr.c
index bbae623..4b6701c 100644
--- a/src/back-shr.c
+++ b/src/back-shr.c
@@ -293,7 +293,7 @@ backend_shr_entry_matches(Slapi_PBlock *pb, Slapi_Entry *e,
static void
backend_shr_set_config_free_config(void *cb_data)
{
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
set_data = cb_data;
backend_set_config_free_config(set_data);
@@ -305,15 +305,15 @@ backend_shr_set_config_entry_add_one(struct plugin_state *state, Slapi_Entry *e,
Slapi_PBlock *pb;
int i;
bool_t flag;
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
char **set_bases;
char *set_entry_filter;
pb = slapi_pblock_new();
flag = FALSE;
backend_set_config_read_config(state, e, group, set, &flag, &set_data);
- set_bases = backend_set_config_get_bases(set_data);
- set_entry_filter = backend_set_config_get_filter(set_data);
+ set_bases = set_data->bases;
+ set_entry_filter = set_data->entry_filter;
if (set_data == NULL) {
slapi_log_error(SLAPI_LOG_PLUGIN,
state->plugin_desc->spd_id,
@@ -486,14 +486,14 @@ backend_shr_get_set_config_entry_cb(Slapi_Entry *e, void *callback_data,
/* Given a map configuration, return true if the entry is supposed to be in the
* map. */
bool_t
-backend_shr_entry_matches_set(struct backend_set_data *set_data,
+backend_shr_entry_matches_set(struct backend_shr_set_data *set_data,
Slapi_PBlock *pb, Slapi_Entry *e)
{
char **set_bases;
char *set_filter;
int i;
- set_bases = backend_set_config_get_bases(set_data);
- set_filter = backend_set_config_get_filter(set_data);
+ set_bases = set_data->bases;
+ set_filter = set_data->entry_filter;
if (set_bases != NULL) {
for (i = 0; set_bases[i] != NULL; i++) {
if (backend_shr_entry_matches(pb, e,
@@ -531,7 +531,7 @@ backend_shr_update_references_cb(const char *group, const char *set,
void *backend_data, void *cbdata_ptr)
{
struct plugin_state *state;
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
struct backend_shr_update_references_cbdata *cbdata;
Slapi_DN *referred_to_sdn;
Slapi_ValueSet *values;
@@ -543,20 +543,20 @@ backend_shr_update_references_cb(const char *group, const char *set,
set_data = backend_data;
cbdata = cbdata_ptr;
- state = backend_set_config_get_state(set_data);
+ state = set_data->state;
/* For every entry in this set which refers to this entry using
* a DN stored in an attribute, update that entry. */
/* Build a filter with all of these attributes and this entry's DN. */
- ref_attrs = backend_set_config_get_ref_attrs(set_data);
+ ref_attrs = set_data->ref_attrs;
for (i = 0; (ref_attrs != NULL) && (ref_attrs[i] != NULL); i++) {
continue;
}
n_ref_attrs = i;
if (n_ref_attrs > 0) {
filter_size = strlen("(&(|))") +
- strlen(backend_set_config_get_filter(set_data)) +
+ strlen(set_data->entry_filter) +
1;
ndn = slapi_entry_get_ndn(cbdata->e);
tndn = format_escape_for_filter(ndn);
@@ -583,8 +583,7 @@ backend_shr_update_references_cb(const char *group, const char *set,
free(tndn);
return TRUE;
}
- sprintf(filter, "(&%s(|",
- backend_set_config_get_filter(set_data));
+ sprintf(filter, "(&%s(|", set_data->entry_filter);
for (i = 0;
(ref_attrs != NULL) && (ref_attrs[i] != NULL);
i++) {
@@ -597,7 +596,7 @@ backend_shr_update_references_cb(const char *group, const char *set,
filter);
free(tndn);
/* Update any matching entry. */
- set_bases = backend_set_config_get_bases(set_data);
+ set_bases = set_data->bases;
for (i = 0;
(set_bases != NULL) && (set_bases[i] != NULL);
i++) {
@@ -630,7 +629,7 @@ backend_shr_update_references_cb(const char *group, const char *set,
/* For every directory entry to which this directory entry refers and
* which also has a corresponding entry in this map, update it. */
- inref_attrs = backend_set_config_get_inref_attrs(set_data);
+ inref_attrs = set_data->inref_attrs;
for (i = 0; (inref_attrs != NULL) && (inref_attrs[i] != NULL); i++) {
/* We're only processing inref attributes for this map. */
if ((strcmp(inref_attrs[i]->group, group) != 0) ||
@@ -664,7 +663,7 @@ backend_shr_update_references_cb(const char *group, const char *set,
/* ...update it. */
backend_shr_set_config_entry_set_one_dn(state,
ndn,
- set_data);
+ set_data->self);
}
}
slapi_vattr_values_free(&values, &actual_attr,
@@ -704,7 +703,7 @@ static bool_t
backend_shr_add_entry_cb(const char *group, const char *set, bool_t secure,
void *backend_data, void *cbdata_ptr)
{
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
struct backend_add_entry_cbdata *cbdata;
set_data = backend_data;
@@ -722,7 +721,7 @@ backend_shr_add_entry_cb(const char *group, const char *set, bool_t secure,
/* Set the entry in the map which corresponds to this entry, or clear
* any that might if this entry doesn't have a key and value. */
- backend_set_entry_one(cbdata->e, set_data);
+ backend_set_entry_one(cbdata->e, set_data->self);
return TRUE;
}
@@ -791,7 +790,7 @@ static bool_t
backend_shr_modify_entry_cb(const char *group, const char *set, bool_t flag,
void *backend_data, void *cbdata_ptr)
{
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
struct backend_shr_modify_entry_cbdata *cbdata;
set_data = backend_data;
@@ -804,12 +803,12 @@ backend_shr_modify_entry_cb(const char *group, const char *set, bool_t flag,
cbdata->state->plugin_desc->spd_id,
"clearing group/set/id "
"\"%s\"/\"%s\"/(\"%s\")\n",
- backend_set_config_get_group(set_data),
- backend_set_config_get_set(set_data),
+ set_data->group,
+ set_data->set,
cbdata->ndn);
map_data_unset_entry_id(cbdata->state,
- backend_set_config_get_group(set_data),
- backend_set_config_get_set(set_data),
+ set_data->group,
+ set_data->set,
cbdata->ndn);
}
/* If the entry now matches the map, add it (or re-add it). */
@@ -818,7 +817,7 @@ backend_shr_modify_entry_cb(const char *group, const char *set, bool_t flag,
/* Set the entry in the set which corresponds to this entry, or
* remove any that might if this entry doesn't produce a useful
* value. */
- backend_shr_set_entry_one(cbdata->e_post, set_data);
+ backend_shr_set_entry_one(cbdata->e_post, set_data->self);
}
return TRUE;
}
@@ -907,7 +906,7 @@ static bool_t
backend_shr_modrdn_entry_cb(const char *group, const char *set, bool_t secure,
void *backend_data, void *cbdata_ptr)
{
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
struct backend_shr_modrdn_entry_cbdata *cbdata;
bool_t matched_pre, matched_post;
@@ -924,12 +923,12 @@ backend_shr_modrdn_entry_cb(const char *group, const char *set, bool_t secure,
cbdata->state->plugin_desc->spd_id,
"clearing group/set/id "
"\"%s\"/\"%s\"/(\"%s\")\n",
- backend_set_config_get_group(set_data),
- backend_set_config_get_set(set_data),
+ set_data->group,
+ set_data->set,
cbdata->ndn_pre);
map_data_unset_entry_id(cbdata->state,
- backend_set_config_get_group(set_data),
- backend_set_config_get_set(set_data),
+ set_data->group,
+ set_data->set,
cbdata->ndn_pre);
}
/* Set the entry in the map which corresponds to this entry, or clear
@@ -938,7 +937,7 @@ backend_shr_modrdn_entry_cb(const char *group, const char *set, bool_t secure,
cbdata->pb,
cbdata->e_post);
if (matched_post) {
- backend_set_entry_one(cbdata->e_post, set_data);
+ backend_set_entry_one(cbdata->e_post, set_data->self);
}
return TRUE;
}
@@ -1012,7 +1011,7 @@ static bool_t
backend_shr_delete_entry_cb(const char *group, const char *set, bool_t flag,
void *backend_data, void *cbdata_ptr)
{
- struct backend_set_data *set_data;
+ struct backend_shr_set_data *set_data;
struct backend_shr_delete_entry_cbdata *cbdata;
set_data = backend_data;
cbdata = cbdata_ptr;
@@ -1023,9 +1022,7 @@ backend_shr_delete_entry_cb(const char *group, const char *set, bool_t flag,
cbdata->state->plugin_desc->spd_id,
"unsetting group/set/id"
"\"%s\"/\"%s\"=\"%s\"/\"%s\"/(\"%s\")\n",
- group, set,
- backend_set_config_get_group(set_data),
- backend_set_config_get_set(set_data),
+ group, set, set_data->group, set_data->set,
cbdata->ndn);
map_data_unset_entry_id(cbdata->state, group, set, cbdata->ndn);
}