История изменений
Исправление Hertz, (текущая версия) :
Меня в Ракетке добило отсутствие библиотеки для ldap. Пришлось лезть в ldap.h и рисовать оттуда биндинги через cffi. Основную работу сделал, данные с лдапа читаются. Теперь руки чешутся написать биндинг к ldap_modify_ext (пока не удалось), реализация замороченная, а как прокидывать ракетные списки и вектора в сишные массивы пока не разобрался. В irc тоже толком ничего не посоветовали, сказали, разбирайся сам, в доках всё есть. Надо cast попробовать.
У ffi, оказывается, есть серьёзный изъян: если писать биндинг для библиотеки для работы с сетью (а libldap это и есть), то любая блокировка, созданная кодом библиотеки вешает весь рантайм, все треды, пока блокировка не будет снята. Костыль: запускать отдельный place, и в нём уже дёргать ffi. Придётся греть голову чтением лдаповых спеков и пытаться сделать какое-то подобие библиотеки на чистой ракетке, что, по идее, куда правильнее, но и тяжелее.
Исходная версия Hertz, :
Меня в Ракетке добило отсутсвие библиотеки для ldap. Пришлось лезть в ldap.h и рисовать оттуда биндинги через cffi. Основную работу сделал, данные с лдапа читаются. Теперь руки чешутся написать биндинг к ldap_modify_ext (пока не удалось), реализация замороченная, а как прокидывать ракетные списки и вектора в сишные массивы пока не разобрался. В irc тоже толком ничего не посоветовали, сказали, разбирайся сам, в доках всё есть. Надо cast попробовать.
У ffi, оказывается, есть серьёзный изъян: если писать биндинг для библиотеки для работы с сетью (а libldap это и есть), то любая блокировка, созданная кодом библиотеки вешает весь рантайм, все треды, пока блокировка не будет снята. Костыль: запускать отдельный place, и в нём уже дёргать ffi. Придётся греть голову чтением лдаповых спеков и пытаться сделать какое-то подобие библиотеки на чистой ракетке, что, по идее, куда правильнее, но и тяжелее.