diff options
author | peavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-03-14 20:11:31 +0000 |
---|---|---|
committer | peavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-03-14 20:11:31 +0000 |
commit | b6b7bbe7f6c5a0efb32d32883bb3981d71eba06d (patch) | |
tree | a8445a212f03d13d1b0989bfa4b6db806a915c21 | |
parent | 81a5b40fc541ba7cf2fb5a8234e52fb56f208144 (diff) |
Fix deprecation in trunk too
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9088 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/modules/extra/m_ldapauth.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/modules/extra/m_ldapauth.cpp b/src/modules/extra/m_ldapauth.cpp index 1657a904a..f40f98656 100644 --- a/src/modules/extra/m_ldapauth.cpp +++ b/src/modules/extra/m_ldapauth.cpp @@ -27,7 +27,7 @@ #include "modules.h" /* FIXME */ -#define LDAP_DEPRECATED 1 +//#define LDAP_DEPRECATED 1 #include <ldap.h> /* $ModDesc: Allow/Deny connections based upon answer from LDAP server */ @@ -57,7 +57,7 @@ public: virtual ~ModuleLDAPAuth() { if (conn) - ldap_unbind_s(conn); + ldap_unbind_ext(conn, NULL, NULL); } virtual void OnRehash(User* user, const std::string ¶meter) @@ -84,7 +84,7 @@ public: bool Connect() { if (conn != NULL) - ldap_unbind_s(conn); + ldap_unbind_ext(conn, NULL, NULL); int res, v = LDAP_VERSION3; res = ldap_initialize(&conn, ldapserver.c_str()); if (res != LDAP_SUCCESS) @@ -100,7 +100,7 @@ public: { if (verbose) ServerInstance->SNO->WriteToSnoMask('A', "LDAP set protocol to v3 failed: %s", ldap_err2string(res)); - ldap_unbind_s(conn); + ldap_unbind_ext(conn, NULL, NULL); conn = NULL; return false; } @@ -131,17 +131,20 @@ public: int res; // bind anonymously - if ((res = ldap_simple_bind_s(conn, "", "")) != LDAP_SUCCESS) + //if ((res = ldap_simple_bind_s(conn, "", "")) != LDAP_SUCCESS) + struct berval cred; cred.bv_val = ""; cred.bv_len = 0; + if ((res = ldap_sasl_bind_s(conn, "", LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL)) != LDAP_SUCCESS) { if (verbose) ServerInstance->SNO->WriteToSnoMask('A', "Forbidden connection from %s!%s@%s (LDAP bind anonymously failed: %s)", user->nick, user->ident, user->host, ldap_err2string(res)); - ldap_unbind_s(conn); + ldap_unbind_ext(conn, NULL, NULL); conn = NULL; return false; } LDAPMessage *msg, *entry; std::string what = (attribute + "=" + user->nick); - if ((res = ldap_search_s(conn, base.c_str(), searchscope, what.c_str(), NULL, 0, &msg)) != LDAP_SUCCESS) + //if ((res = ldap_search_s(conn, base.c_str(), searchscope, what.c_str(), NULL, 0, &msg)) != LDAP_SUCCESS) + if ((res = ldap_search_ext_s(conn, base.c_str(), searchscope, what.c_str(), NULL, 0, NULL, NULL, NULL, NULL, &msg)) != LDAP_SUCCESS) { if (verbose) ServerInstance->SNO->WriteToSnoMask('A', "Forbidden connection from %s!%s@%s (LDAP search failed: %s)", user->nick, user->ident, user->host, ldap_err2string(res)); @@ -161,7 +164,9 @@ public: ldap_msgfree(msg); return false; } - if ((res = ldap_simple_bind_s(conn, ldap_get_dn(conn, entry), user->password)) == LDAP_SUCCESS) + //if ((res = ldap_simple_bind_s(conn, ldap_get_dn(conn, entry), user->password)) == LDAP_SUCCESS) + cred.bv_val = user->password; cred.bv_len = strlen(user->password); + if ((res = ldap_sasl_bind_s(conn, ldap_get_dn(conn, entry), LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL)) == LDAP_SUCCESS) { ldap_msgfree(msg); user->Extend("ldapauthed"); @@ -197,4 +202,3 @@ public: }; MODULE_INIT(ModuleLDAPAuth) - |