Я пытаюсь получить один элемент имени пользователя на сервере LDAP, но мой клиентский код будет тратить 0,6 с, это слишком медленно, я не знаю почему. но 'ldapsearch' и 'LDAP Admin' слишком быстрые, поэтому я думаю, что проблема не в сервере LDAP, кто-нибудь может дать мне некоторую подсказку, почему мой код работает медленно? Спасибо!:)
int main(int argc, char *argv[])
{
LDAP *ld;
char *dn;
int version, rc;
const char *root_dn = "cn=ldapadm,dc=extreme3,dc=com";
char *root_pass = "Password123!";
printf("Connecting %s in port %d...\n\n", HOSTNAME, PORTNUMBER);
rc = ldap_initialize(&ld, HOSTNAME);
if ( rc != LDAP_SUCCESS )
{
printf("Error !");
}
version = LDAP_VERSION3;
ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version);
printf("Bind!\n");
rc = ldap_simple_bind_s(ld, root_dn, root_pass);
if (rc != LDAP_SUCCESS) {
fprintf(stderr, "Error: %s\n", ldap_err2string(rc));
return (1);
}
LDAPMessage* res = nullptr;
ldap_search_s(ld, "dc=extreme3,dc=com", LDAP_SCOPE_SUBTREE, "(uid=ncvm9141196u1432)", 0, 0, &res); //slow at here
int count = ldap_count_entries(ld, res);
printf("Result: %d S:\n", count);
ldap_unbind(ld);
return(0);
}
//////////////////////////////////
c4dev@sles15-guol13-dev-00: / c4_working / code> time ./prog
Подключение ldap: //10.109.14.51 в порт 389 ...
Bind!
Результат: 1
реальный 0m0,626s
пользователь 0m0,027s
sys 0m0,000s