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