diff --git a/src/plugins/LdapPlugin/ldapauth.c b/src/plugins/LdapPlugin/ldapauth.c index bc69f68..5b8231c 100644 --- a/src/plugins/LdapPlugin/ldapauth.c +++ b/src/plugins/LdapPlugin/ldapauth.c @@ -121,6 +121,9 @@ static int ldapfunc(struct clientparam *param) int rc = -1; char tmpbuf[1024]; + /* test proxy user auth ------------------------*/ + if(!param->username || !param->password) return 4; + if(strlen(param->password)==0) return 4; /* init ldap ---------------------- */ ld = ldap_init( ldap_serv, 389 ); @@ -131,9 +134,6 @@ static int ldapfunc(struct clientparam *param) return 7; } - /* test proxy user auth ------------------------*/ - if(!param->username || !param->password) return 4; - if(strlen(param->password)==0) return 4; /* this code for Active Directory LDAP catalog :( detail see documentation for plugin */ @@ -161,6 +161,14 @@ static int ldapfunc(struct clientparam *param) ldap_unbind_s(ld); ld = ldap_init( ldap_serv, 389 ); + + if ( ld == NULL ) + { + param->srv->logfunc(param,"Error ldap_init: No init lib ldap"); + /*ldap_perror( ld, "Error ldap_init" ); */ + return 7; + } + rc = ldap_bind_s( ld, ldap_user, ldap_pass, LDAP_AUTH_SIMPLE ); if ( rc != LDAP_SUCCESS ) diff --git a/src/plugins/LdapPlugin/ldapauth.txt b/src/plugins/LdapPlugin/ldapauth.txt index 0c23a6e..89f04d5 100644 --- a/src/plugins/LdapPlugin/ldapauth.txt +++ b/src/plugins/LdapPlugin/ldapauth.txt @@ -27,11 +27,6 @@ http://lucas.bergmans.us/hacks/openldap/ ОНД unix ОНДНАМНИ ня (Freebsd) ХЯОНКЭГНБЮКЯЪ ЯРЮМДЮПРМШИ gcc. Х АХАКХНРЕЙХ openldap-client. -!!!! бМХЛЮМХЕ ОПХ ПЮАНРЕ ОКЮЦХМЮ БНГЛНФМЮ СРЕВЙЮ ОЮЛЪРХ !!!! -с ЛЕМЪ МЮ Win 2000 Serv Х НЙНКЮ 600 ОНКЭГНБЮРЕКЪУ ОПХ ЙЮМЮКЕ 500 ЙАХР/ЯЕЙ . -ОПНЖЕЯЯ 3proxy ГЮ ЯСРЙХ БШПНЯРЮЕР ДН 40 ЛА . кЕВХРЯЪ ПЕЯРЮПРНЛ ЯЕПБХЯЮ. -еЯКХ ЙРН РН ГМЮЕР УНПНЬН Open Ldap api Х ЛНФЕР СЙЮГЮРЭ МЮ НЬХАЙС Б ОКЮЦХМЕ -Я ПЮДНЯРЭЧ БШЯКСЬЮЧ :) . 2. мЮЯРПНИЙЮ ОКЮЦХМЮ. @@ -328,11 +323,6 @@ http://lucas.bergmans.us/hacks/openldap/ под unix подобной ОС (Freebsd) использовался стандартный gcc. и библиотеки openldap-client. -!!!! Внимание при работе плагина возможна утечка памяти !!!! -У меня на Win 2000 Serv и окола 600 пользователях при канале 500 кбит/сек . -процесс 3proxy за сутки выростает до 40 мб . Лечится рестартом сервиса. -Если кто то знает хорошо Open Ldap api и может указать на ошибку в плагине -с радостью выслушаю :) . 2. Настройка плагина.