[Date Prev][Date Next] [Chronological] [Thread] [Top]

Deleting records while iterating through ldap_result

Hi everyone,

I'm using the C SDK and writing a program to prune old directory records.

The core logic of the program could go something like this:-

rc = ldap_search_ext( ld, .. <rest of parameters> );
while (!done) {
	rc = ldap_result( ld, .. <rest of parameters>, &searchResult) ;
	//Delete records matching criteria
	dn = ldap_get_dn( ld, searchResult );
 	rc = ldap_delete_ext_s( ld, dn, .. <rest of parameters>);

I have two questions and they are probably related:-

Firstly: Can I delete records while iterating through the results of the ldap search? (In higher level languages deleting an item from a collection while navigating through a collection is often bad form. Is that the case here?)

Secondly: Can I use the same session handle to delete the records as is used for the search? In the logic above, the session handle is ld, and ld is used for both the search and for the deletion. (I'm expecting I would need to use a different session handle for the logic above to work. Alternatively one could save all the records to be deleted in an array and then after the search loop, the same session handle can be used for all the deletes).

Thank you