void LDAPExample()
{
gSystem->Load("libRLDAP.so");
TLDAPServer *server = new TLDAPServer("ldap.cern.ch");
if (!server->IsConnected()) {
printf("Could not connect to ldap.cern.ch\n");
delete server;
return;
}
TLDAPResult *result = server.Search();
if (result == 0) {
printf("Search failed\n");
return;
}
result->Print();
delete result;
const char *namingcontexts = server.GetNamingContexts();
result = server.Search(namingcontexts, LDAP_SCOPE_ONELEVEL, 0, 0, 1);
TLDAPEntry *entry = result.GetNext();
entry->Print();
TString dn = entry->GetDn();
delete result;
delete entry;
cout << "The DN of the entry is " << dn << endl;
result = server.Search(dn, LDAP_SCOPE_SUBTREE, 0, 0, 0);
if (result == 0) {
printf("Search failed\n");
return;
}
result->Print();
Int_t counter = result.GetCount();
cout << "The result contains " << counter << " entries !!!" << endl;
entry = result.GetNext();
TLDAPAttribute *attribute = entry.GetAttribute("member");
Int_t counter2 = attribute.GetCount();
cout << "The attribute " << attribute.GetName() << " contains "
<< counter2 << " values !!!" << endl;
const char *value = attribute.GetValue();
cout << "The first value of the attribute is " << endl;
cout << value << endl;
delete result;
delete entry;
}