summaryrefslogtreecommitdiffstats
path: root/daemons/ipa-kpasswd
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-kpasswd
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-kpasswd')
-rw-r--r--daemons/ipa-kpasswd/ipa_kpasswd.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/daemons/ipa-kpasswd/ipa_kpasswd.c b/daemons/ipa-kpasswd/ipa_kpasswd.c
index 9b4c2ddc0..a506cec1d 100644
--- a/daemons/ipa-kpasswd/ipa_kpasswd.c
+++ b/daemons/ipa-kpasswd/ipa_kpasswd.c
@@ -42,7 +42,6 @@
#ifdef WITH_MOZLDAP
#include <mozldap/ldap.h>
#else
-#define LDAP_DEPRECATED 1
#include <ldap.h>
#endif
#include <sasl/sasl.h>
@@ -331,6 +330,7 @@ int ldap_pwd_change(char *client_name, char *realm_name, krb5_data pwd, char **e
struct berval *control = NULL;
struct berval newpw;
char hostname[1024];
+ char *uri;
struct berval **ncvals;
char *ldap_base = NULL;
char *filter;
@@ -386,11 +386,19 @@ int ldap_pwd_change(char *client_name, char *realm_name, krb5_data pwd, char **e
goto done;
}
+ ret = asprintf(&uri, "ldap://%s:389", hostname);
+ if (ret == -1) {
+ syslog(LOG_ERR, "Out of memory!");
+ goto done;
+ }
+
/* connect to ldap server */
/* TODO: support referrals ? */
- ld = ldap_init(hostname, 389);
- if(ld == NULL) {
- syslog(LOG_ERR, "Unable to connect to ldap server");
+ ret = ldap_initialize(&ld, uri);
+ free(uri);
+ if(ret != LDAP_SUCCESS) {
+ syslog(LOG_ERR, "Unable to connect to ldap server: %s",
+ ldap_err2string(ret));
goto done;
}
@@ -414,7 +422,7 @@ int ldap_pwd_change(char *client_name, char *realm_name, krb5_data pwd, char **e
/* find base dn */
/* TODO: address the case where we have multiple naming contexts */
tv.tv_sec = 10;
- tv.tv_usec = 0;
+ tv.tv_usec = 0;
ret = ldap_search_ext_s(ld, "", LDAP_SCOPE_BASE,
"objectclass=*", root_attrs, 0,