Я использую ldap_connect
для работы с сервером LDAP из приложения PHP, которое отлично работает. Теперь мне нужно установить таймауты, чтобы запрос был отменен, если он длится долго. Для этого я установить следующие параметры со следующими строками кода:ldap_set_option не задает параметр таймаута
$ldapconn = ldap_connect($ldap['host'], $ldap['port'])
or myExClass::throwException("unable to connect");
echo LDAP_OPT_TIMELIMIT;
ldap_set_option ($ldapconn, LDAP_OPT_TIMELIMIT,1);
ldap_set_option ($ldapconn, LDAP_OPT_NETWORK_TIMEOUT,1);
echo LDAP_OPT_TIMELIMIT;
echo
вставленные для отладки. В этом примере я узнал, что опция LDAP_OPT_TIMELIMIT
не изменилась 4. До и после ldap_set_option
.
Почему этот параметр не изменен? В чем может быть причина? Кстати: код возврата ldap_set_option
равен 1 в обоих случаях.
О, извините, моя ошибка. Я должен использовать 'ldap_get_option ($ ldapconn, LDAP_OPT_TIMELIMIT, $ retVal)', чтобы получить текущее значение этой конкретной опции, вместо 'echo LDAP_OPT_TIMELIMIT;', где я получаю только внутренний номер этого параметра. Поэтому в этом случае параметр задан правильно, но длительные запросы по-прежнему не отменены. :-( –
okay - я нашел причину: у ldap_search есть свой собственный параметр таймаута, который перезаписывает параметр ldap_connect. –