summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/back-nis.c6
-rw-r--r--src/back-shr.c8
-rw-r--r--src/format.c8
-rw-r--r--src/wrap.c40
-rw-r--r--src/wrap.h2
5 files changed, 53 insertions, 11 deletions
diff --git a/src/back-nis.c b/src/back-nis.c
index 4b4643b..b6fe86f 100644
--- a/src/back-nis.c
+++ b/src/back-nis.c
@@ -559,8 +559,8 @@ backend_update_params(struct plugin_state *state)
state->plugin_base ? "\"" : "");
return;
}
- slapi_search_internal_get_entry(our_dn, NULL, &our_entry,
- state->plugin_identity);
+ wrap_search_internal_get_entry(our_dn, NULL, &our_entry,
+ state->plugin_identity);
slapi_sdn_free(&our_dn);
our_dn = NULL;
if (our_entry == NULL) {
@@ -646,7 +646,7 @@ backend_get_set_config_entry_cb(Slapi_Entry *e, void *callback_data)
slapi_log_error(SLAPI_LOG_PLUGIN,
cbdata->state->plugin_desc->spd_id,
"reading map configuration from \"%s\"\n",
- slapi_entry_get_ndn(e));
+ slapi_entry_get_dn(e));
cbdata->bases = backend_shr_get_vattr_strlist(cbdata->state, e,
NIS_MAP_CONFIGURATION_BASE_ATTR);
cbdata->entry_filter = backend_shr_get_vattr_filter(cbdata->state, e,
diff --git a/src/back-shr.c b/src/back-shr.c
index ea17f05..938ca7f 100644
--- a/src/back-shr.c
+++ b/src/back-shr.c
@@ -86,8 +86,8 @@ backend_shr_read_server_name(struct plugin_state *state, char **master)
return -1;
}
config = NULL;
- slapi_search_internal_get_entry(config_dn, attrs, &config,
- state->plugin_identity);
+ wrap_search_internal_get_entry(config_dn, attrs, &config,
+ state->plugin_identity);
if (config == NULL) {
slapi_log_error(SLAPI_LOG_PLUGIN,
state->plugin_desc->spd_id,
@@ -255,8 +255,8 @@ backend_shr_set_config_entry_set_one_dn(struct plugin_state *state,
return;
} else {
entry = NULL;
- slapi_search_internal_get_entry(sdn, NULL, &entry,
- state->plugin_identity);
+ wrap_search_internal_get_entry(sdn, NULL, &entry,
+ state->plugin_identity);
if (entry == NULL) {
slapi_log_error(SLAPI_LOG_PLUGIN,
state->plugin_desc->spd_id,
diff --git a/src/format.c b/src/format.c
index 257a285..358e71c 100644
--- a/src/format.c
+++ b/src/format.c
@@ -152,8 +152,8 @@ format_add_entry_list_dn(struct entry_list *list,
sdn = slapi_sdn_new_dn_byval(dn);
if (sdn != NULL) {
entry = NULL;
- slapi_search_internal_get_entry(sdn, attributes, &entry,
- plugin_identity);
+ wrap_search_internal_get_entry(sdn, attributes, &entry,
+ plugin_identity);
slapi_sdn_free(&sdn);
if (entry != NULL) {
return format_add_entry_list(list, entry);
@@ -691,8 +691,8 @@ format_deref(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e,
continue;
}
ref = NULL;
- slapi_search_internal_get_entry(refdn, attrs, &ref,
- state->plugin_identity);
+ wrap_search_internal_get_entry(refdn, attrs, &ref,
+ state->plugin_identity);
if (ref == NULL) {
slapi_log_error(SLAPI_LOG_PLUGIN,
state->plugin_desc->spd_id,
diff --git a/src/wrap.c b/src/wrap.c
index e29cc67..6ed533d 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -232,3 +232,43 @@ wrap_rwlock_unlock(struct wrapped_rwlock *rwlock)
PR_RWLock_Unlock(rwlock->rwlock);
#endif
}
+
+#ifndef HAVE_SLAPI_SEARCH_INTERNAL_GET_ENTRY
+static int
+wrap_search_internal_get_entry_cb(Slapi_Entry *e, void *cb)
+{
+ Slapi_Entry **ret = cb;
+ if (*ret) {
+ slapi_entry_free(*ret);
+ }
+ *ret = slapi_entry_dup(e);
+ return 0;
+}
+#endif
+
+int
+wrap_search_internal_get_entry(Slapi_DN *dn, char **attrs,
+ Slapi_Entry **ret_entry, void *caller_id)
+{
+#ifdef HAVE_SLAPI_SEARCH_INTERNAL_GET_ENTRY
+ return slapi_search_internal_get_entry(dn, attrs, ret_entry, caller_id);
+#else
+ Slapi_PBlock *pb;
+ int ret;
+ *ret_entry = NULL;
+ pb = slapi_pblock_new();
+ if (pb == NULL) {
+ return -1;
+ }
+ slapi_search_internal_set_pb(pb, slapi_sdn_get_dn(dn), LDAP_SCOPE_BASE,
+ "(objectClass=*)", attrs, FALSE,
+ NULL, NULL, caller_id, 0);
+ ret = slapi_search_internal_callback_pb(pb, ret_entry,
+ NULL,
+ wrap_search_internal_get_entry_cb,
+ NULL);
+ slapi_pblock_destroy(pb);
+ return ret;
+#endif
+}
+
diff --git a/src/wrap.h b/src/wrap.h
index d5cc434..db530c3 100644
--- a/src/wrap.h
+++ b/src/wrap.h
@@ -37,4 +37,6 @@ void wrap_rwlock_rdlock(struct wrapped_rwlock *rwlock);
void wrap_rwlock_wrlock(struct wrapped_rwlock *rwlock);
void wrap_rwlock_unlock(struct wrapped_rwlock *rwlock);
+int wrap_search_internal_get_entry(Slapi_DN *dn, char **attrs,
+ Slapi_Entry **ret_entry, void *caller_id);
#endif