This query returns all objects.
#include <stdio.h>
#define LDAP_DEPRECATEDÂ Â Â 1
#include <ldap.h>
const char *base = “dc=application,dc=company,dc=com”;
char loginDN[] =”cn=Manager,dc=virtualcenter,dc=vmware,dc=int”;#define TRACE()Â printf(“%s:%d\n”, __FILE__,__LINE__)
/*TODO free memory*/
void handle_search_result(LDAP *ldap, LDAPMessage *result){
char *attr;
LDAPMessage *entry;
BerElement *ber;
char **values;printf(“Entries =Â %d\n”, ldap_count_entries( ldap, result ));
for (entry = ldap_first_entry(ldap, result);
entry != NULL;
entry = ldap_next_entry(ldap, result))
{
printf(“dn=(%s)\n”,ldap_get_dn( ldap, entry ));for (attr = ldap_first_attribute(ldap, result, &ber);
attr != NULL;
attr = ldap_next_attribute(ldap, result, ber))
{
printf(“\t%s\n”,attr);values = ldap_get_values(ldap, entry, attr);
int  i =0 ;
int len =Â ldap_count_values(values);
for (i =0; i < len; ++i){
printf(“\t\t%s\n”,values[i]);
}
}
result = ldap_next_message(ldap, result);
}
}int execute(){
printf(“Running\n”);
LDAP *ldap;
char *uri = “ldap://localhost”;
int rc = ldap_initialize(&ldap, uri);
if (LDAP_SUCCESS != rc){
printf(“error:%s\n”, ldap_err2string(rc));
return rc;
}rc =Â ldap_bind_s(ldap, loginDN, “vmware”, LDAP_AUTH_SIMPLE );
if (LDAP_SUCCESS != rc) goto error;char *attrs;
LDAPMessage *res = 0;
rc =Â ldap_search_s (ldap,base,LDAP_SCOPE_CHILDREN
,”(objectclass=*)”,0,0,&res);
if (LDAP_SUCCESS != rc) goto error;printf(“number of results = %d\n”,ldap_count_messages(ldap,res));
int attid = 0;
char * attr;handle_search_result(ldap, res);
goto cleanup;
error:
printf(“error:%s\n”, ldap_err2string(rc));
cleanup:
ldap_unbind(ldap);
return rc;return 0;
}int main(){
return execute() ? -1 : 0;
}