I confuse with the use of ldap_parse_sortresponse_control because there is no example and document about it. Although it seems like ldap_parse_sort_control of Novell CLDAP and Mozilla C LDAP, it is wrong if using it on their way.
the following is my code:
...
LDAPControl *sortctrl = NULL; LDAPControl *serverctrls[2]; LDAPControl **resultctrls = NULL; LDAPSortKey **sortkeylist;
...
ldap_create_sort_keylist(&sortkeylist, sort_attrs);
/* Create the sort control. */ rc = ldap_create_sort_control(ldap, sortkeylist, 1, &sortctrl);
... requestctrls[0] = sortctrl; requestctrls[1] = NULL;
/* Search for all entries in Sunnyvale */ rc = ldap_search_ext_s(...);
...
parse_rc = ldap_parse_result(ldap, result, &rc, NULL, NULL, NULL, &resultctrls, 0); ...
parse_rc = ldap_parse_sortresponse_control(ldap, *resultctrls, &rcode, NULL);
...
for (...) { ... }
nothing is searched. it is ok if no sort or sort by CLDAP
gtalk:freeespeech@gmail.com