Ключевые слова:ldap, (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Leonid B. Toker 2:5020/400 11 Aug 99 17:11:34
Subj : LDAP server
________________________________________________________________________________
From: "Leonid B. Toker" <tlb@www.cbr.ru>
Добрый день!
Timothy <timothy@fom.ru> wrote:
> стянул с Дебьяна ЛДАП сервер - университет Митчиган ЛДАП, версия 3.3.
Это очень старая версия. Этот софт продолжился в OpenLDAP
(www.openldap.org).
Рекомендую взять ее. Собирается без проблем. Hужен gdbm.
> Все установил, читаю документацию, делаю 1 в 1, запускаю ldapsearch
'objectclass=*',
> но вместо результата - ldap_search: Partial results and referral received
в syslog пишется
> slapd[31902]: do_bind
> slapd[31902]: conn=3 op=0 BIND dn="" method=128
> slapd[31902]: do_bind: version 2 dn () method 128
> slapd[31902]: send_ldap_result 0::
> slapd[31902]: conn=3 op=0 RESULT err=0 tag=97 nentries=0
Успешная авторизация анонимного пользователя
> slapd[31903]: do_search
> slapd[31903]: SRCH "o=Public Opinion Foundation,c=RU" 2 0
Search Base, т.е. вершина поддерева, в котором будет идти поиск,
и scope ('2') - в какой части дерева искать - во всем поддереве (2),
в его корне (0) или на первом уровне от корня поддерева (1).
> slapd[31903]: filter: (objectclass=*)
Фильтр для поиска, т.е. собственно запрос.
> slapd[31903]: attrs:
Список атрибутов, значения которых нужно вернуть.
По умолчанию (список пуст) - все атрибуты.
> slapd[31903]: conn=3 op=1 SRCH base="o=Public Opinion Foundation,c=RU"
> scope=2 filter="(objectclass=*)"
Еще раз полностью весь запрос - искать в поддереве "o=Public Opinion
Foundation,c=RU"
все объекты, у которых атрибут 'objectclass' имеет любое значение.
> slapd[31903]: send_ldap_result 9::
> slapd[31903]: conn=3 op=1 RESULT err=9 tag=101 nentries=0
Данных не найдено.
> slapd[31904]: do_unbind
> slapd[31904]: conn=3 op=2 UNBIND
> slapd[31904]: conn=3 op=2 fd=10 closed errno=0
Успешный разрыв связи.
> Я ничего не понимаю.
Похоже, просто не создана база. Создай, если так (man ldif2ldbm).
Еще вариант - нет записи для корневой вершины базы.
Стоит убрать из slapd.conf referral на UMICH.
> Где взять траблешутинг?
www.openldap.org
Для case-insencitive поиска по-русски:
1) нужно вставить вызов setlocale() для LC_CTYPE и LC_COLLATE в каждую
программу пакета (в начало каждой функции main)
2) После этого останется только проблема с кодом 0xFF ('я' в CP1251) ;-))).
Эта буква так и останется case-sencitive. Для исправления надо в
openldap'овском
хедере include/ac/ctype.h поправить макросы TOUPPER и TOLOWER - заменить
#define TOUPPER(c) toupper(c)
на
#define TOUPPER(c) toupper((c) & 0x0FF)
Аналогично для TOLOWER.
3) Создавать базу и запускать slapd надо при установленных переменных
LC_CTYPE
и LC_COLLATE (ну еще можно и LC_ALL или LANG, но зачем?) в нужную локаль
(у меня это ru_RU.win).
С уважением.
Леонид Токер
--- ifmail v.2.14dev3 * Origin: TC CB RF (2:5020/400)