------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. http://bugs.kde.org/show_bug.cgi?id=145501 ------- Additional Comments From gyurco freemail hu 2007-05-23 20:27 ------- SVN commit 667726 by gyurco: Another set of compatibility fixes with other client libs than OpenLDAP... CCBUG: 145501 M +10 -1 CMakeLists.txt M +1 -1 ber.cpp M +3 -0 kldap_config.h.cmake M +18 -2 ldapconnection.cpp --- trunk/KDE/kdepimlibs/kldap/CMakeLists.txt #667725:667726 @ -9,7 +9,6 @ macro_log_feature(SASL2_FOUND "cyrus-sasl" "Cyrus SASL API" "http://asg.web.cmu.edu/sasl/sasl-library.html" FALSE "" "Needed to support authentication of logins" ) check_include_files(sys/time.h HAVE_SYS_TIME_H) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kldap_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kldap_config.h ) set(kldap_EXTRA_LIBS) set(kldap_EXTRA_INCLUDES) @ -17,6 +16,14 @ if (LDAP_FOUND) set(kldap_EXTRA_LIBS ${LDAP_LIBRARIES}) set(klap_EXTRA_INCLUDES ${LDAP_INCLUDE_DIR}) + +set(CMAKE_REQUIRED_INCLUDES lber.h ldap.h) +set(CMAKE_REQUIRED_LIBRARIES ${LDAP_LIBRARIES}) +check_function_exists(ldap_start_tls_s HAVE_LDAP_START_TLS_S) +check_function_exists(ldap_initialize HAVE_LDAP_INITIALIZE) +check_function_exists(ber_memfree HAVE_BER_MEMFREE) + + endif (LDAP_FOUND) if (SASL2_FOUND) @ -24,6 +31,8 @ set(kldap_EXTRA_INCLUDES ${kldap_EXTRA_INCLUDES} ${SASL2_INCLUDE_DIR}) endif (SASL2_FOUND) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kldap_config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kldap_config.h ) + add_subdirectory(tests) ########### next target ############### --- trunk/KDE/kdepimlibs/kldap/ber.cpp #667725:667726 @ -42,7 +42,7 @ #define LBER_USE_DER 1 #endif -#ifndef ber_memfree +#ifndef HAVE_BER_MEMFREE #define ber_memfree(x) ldap_memfree(x) #endif --- trunk/KDE/kdepimlibs/kldap/kldap_config.h.cmake #667725:667726 @ -1,3 +1,6 @ #cmakedefine LDAP_FOUND #cmakedefine SASL2_FOUND #cmakedefine HAVE_SYS_TIME_H +#cmakedefine HAVE_LDAP_START_TLS_S +#cmakedefine HAVE_LDAP_INITIALIZE +#cmakedefine HAVE_BER_MEMFREE --- trunk/KDE/kdepimlibs/kldap/ldapconnection.cpp #667725:667726 @ -34,8 +34,13 @ #define LDAP_DEPRECATED 1 //for ldap_simple_bind_s #include #include + +#ifndef LDAP_OPT_SUCCESS +#define LDAP_OPT_SUCCESS 0 #endif +#endif + using namespace KLDAP; class LdapConnection::LdapConnectionPrivate @ -263,7 +268,12 @ url += ':'; url += QString::number( d->mServer.port() ); kDebug(5322) << "ldap url: " << url << endl; +#ifdef HAVE_LDAP_INITIALIZE ret = ldap_initialize( &d->mLDAP, url.toLatin1() ); +#else + d->mLDAP = ldap_init( d->mServer.host().toLatin1().data(), d->mServer.port() ); + if ( d->mLDAP == 0 ) ret = -1; +#endif if ( ret != LDAP_SUCCESS ) { d->mConnectionError = i18n("An error occurred during the connection initialization phase."); return ret; @ -281,11 +291,17 @ kDebug(5322) << "setting security to: " << d->mServer.security() << endl; if ( d->mServer.security() == LdapServer::TLS ) { kDebug(5322) << "start TLS" << endl; +#ifdef HAVE_LDAP_START_TLS_S if ( ( ret = ldap_start_tls_s( d->mLDAP, NULL, NULL ) ) != LDAP_SUCCESS ) { close(); d->mConnectionError = i18n("Cannot start TLS."); return ret; } +#else + close(); + d->mConnectionError = i18n("TLS support not available in the LDAP client libraries."); + return -1; +#endif } kDebug(5322) << "setting sizelimit to: " << d->mServer.sizeLimit() << endl; @ -342,7 +358,7 @ pass = d->mServer.password(); } kDebug(5322) << "binding to server, bindname: " << bindname << " password: *****" << endl; - ret = ldap_simple_bind_s( d->mLDAP, bindname.toUtf8(), pass.toUtf8() ); + ret = ldap_simple_bind_s( d->mLDAP, bindname.toUtf8().data(), pass.toUtf8().data() ); } return ret; } @ -350,7 +366,7 @ void LdapConnection::close() { if ( d->mLDAP ) { - ldap_unbind_ext_s( d->mLDAP, 0, 0 ); + ldap_unbind_ext( d->mLDAP, 0, 0 ); } d->mLDAP = 0; kDebug(5322) << "connection closed!" << endl;