diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2011-01-03 16:16:57 +0100 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2011-01-07 05:00:44 -0500 |
commit | 8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c (patch) | |
tree | f08d850fd5b68f8bb06a5e92cbbea5fb49b277c0 /daemons/ipa-slapi-plugins/ipa-winsync | |
parent | 21bf175e0c10b087deb10b8e328a6a6bd549c0f9 (diff) | |
download | freeipa.git-8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c.tar.gz freeipa.git-8a9fdbfb039bf1894cf3b301c8a0f84261ec8c1c.tar.xz freeipa.git-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.c | 24 |
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 10aa1880..bfad0cf2 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); |