diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/back-nis.c | 6 | ||||
-rw-r--r-- | src/back-shr.c | 8 | ||||
-rw-r--r-- | src/format.c | 8 | ||||
-rw-r--r-- | src/wrap.c | 40 | ||||
-rw-r--r-- | src/wrap.h | 2 |
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, @@ -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 +} + @@ -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 |