Итак, я разрабатываю приложение LDAP для Red Hat 5.5.
Я не делал LDAP раньше, поэтому я читаю документы по мере продвижения. Я использую OpenLDAP версии 2.3
Мой исходный код выглядит следующим образом:
LDAP * ld;
int version=LDAP_VERSION3;
int retVal;
berval creds;
berval *serverCreds;
retVal= ldap_initialize(&ld,"ldap://myhost"); //myhost is an actual hostname.
if(retVal !=0)
{
aWarning() << "Could not connect to host:" << hostname;
}
ldap_set_option(ld,LDAP_OPT_PROTOCOL_VERSION,&version);
creds.bv_val = "magic"; //These don't matter since I'm not using a cred mechanism.
creds.bv_len = strlen("magic");
cout << ldap_sasl_bind_s(ld,"uid=username, ou=groupname",NULL,&creds,NULL,NULL,servercred);
}
Я следовал одному из немногих примеров, которые я мог найти здесь для реализации LDAP на c / c ++:
http://www -archive.mozilla.org / каталог / csdk-Docs / sasl.htm
Но когда я запускаю это, я получаю следующую ошибку:
../../../libraries/libldap/sasl.c:108: ldap_sasl_bind: Assertion '((ber)->ber_opts.lbo_valid==0x2)' failed.
Основываясь на некоторых моих собственных исследованиях, я, кажется, предлагаю что-то вроде ошибки памяти из более поздней версии:
http://sourceforge.net/mailarchive/forum.php?thread_name=9F7FA2E0294A934CA0CD9E97BD580F840A801834%40CCS-EXCHANGE1.brynmill.swan.ac.uk&forum_name=vufind-tech
Мне любопытно, если кто-нибудь, знакомый с LDAP, увидит какие-либо явные ошибки или уже сталкивался с этой проблемой раньше.
Спасибо