summaryrefslogtreecommitdiffstats
path: root/daemons/ipa-slapi-plugins/ipa-winsync
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2011-01-03 16:16:57 +0100
committerSimo Sorce <ssorce@redhat.com>2011-01-07 05:00:44 -0500
commit8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c (patch)
treef08d850fd5b68f8bb06a5e92cbbea5fb49b277c0 /daemons/ipa-slapi-plugins/ipa-winsync
parent21bf175e0c10b087deb10b8e328a6a6bd549c0f9 (diff)
downloadfreeipa-8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c.tar.gz
freeipa-8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c.tar.xz
freeipa-8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c.zip
Do not use LDAP_DEPRECATED in plugins
Remove the LDAP_DEPRECATED constant and do not use functions that are marked as deprecated in recent OpenLDAP releases. Also always define WITH_{MOZLDAP,OPENLDAP} since there are conditional header includes that depend on that constant. https://fedorahosted.org/freeipa/ticket/576
Diffstat (limited to 'daemons/ipa-slapi-plugins/ipa-winsync')
-rw-r--r--daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.c b/daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.c
index 10aa1880c..bfad0cf2b 100644
--- a/daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.c
+++ b/daemons/ipa-slapi-plugins/ipa-winsync/ipa-winsync.c
@@ -41,8 +41,6 @@
# include <config.h>
#endif
-#define LDAP_DEPRECATED 1
-
/*
* Windows Synchronization Plug-in for IPA
* This plugin allows IPA to intercept operations sent from
@@ -375,7 +373,6 @@ ipa_winsync_get_new_ds_user_dn_cb(void *cbdata, const Slapi_Entry *rawentry,
Slapi_Entry *ad_entry, char **new_dn_string,
const Slapi_DN *ds_suffix, const Slapi_DN *ad_suffix)
{
- char **rdns = NULL;
PRBool flatten = PR_TRUE;
IPA_WinSync_Config *ipaconfig = ipa_winsync_get_config();
@@ -390,6 +387,9 @@ ipa_winsync_get_new_ds_user_dn_cb(void *cbdata, const Slapi_Entry *rawentry,
return;
}
+#ifdef WITH_MOZLDAP
+ char **rdns = NULL;
+
rdns = ldap_explode_dn(*new_dn_string, 0);
if (!rdns || !rdns[0]) {
ldap_value_free(rdns);
@@ -399,6 +399,24 @@ ipa_winsync_get_new_ds_user_dn_cb(void *cbdata, const Slapi_Entry *rawentry,
slapi_ch_free_string(new_dn_string);
*new_dn_string = slapi_ch_smprintf("%s,%s", rdns[0], slapi_sdn_get_dn(ds_suffix));
ldap_value_free(rdns);
+#else
+ /* both ldap_explode_dn and ldap_value_free are deprecated
+ * in OpenLDAP */
+ LDAPDN ldn;
+ int ret;
+ char *rdn;
+
+ ret = ldap_str2dn(*new_dn_string, &ldn, LDAP_DN_FORMAT_LDAPV3);
+ if (ret != LDAP_SUCCESS) {
+ LOG_TRACE("ldap_str2dn(dn) failed ?!");
+ return;
+ }
+
+ ldap_rdn2str(ldn[0], &rdn, LDAP_DN_FORMAT_UFN);
+ *new_dn_string = slapi_ch_smprintf("%s,%s", rdn, slapi_sdn_get_dn(ds_suffix));
+ ldap_dnfree(ldn);
+ ldap_memfree(rdn);
+#endif
LOG("<-- ipa_winsync_get_new_ds_user_dn_cb -- new dn [%s] -- end\n",
*new_dn_string);