1d11b170bStron // $OpenLDAP$
22de962bdSlukem /*
3*e670fd5cSchristos * Copyright 2000-2021 The OpenLDAP Foundation, All Rights Reserved.
42de962bdSlukem * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
52de962bdSlukem */
62de962bdSlukem
72de962bdSlukem #include <iostream>
82de962bdSlukem #include <sstream>
92de962bdSlukem #include "LDAPConnection.h"
102de962bdSlukem #include "LDAPConstraints.h"
112de962bdSlukem #include "LDAPSearchReference.h"
122de962bdSlukem #include "LDAPSearchResults.h"
132de962bdSlukem #include "LDAPAttribute.h"
142de962bdSlukem #include "LDAPAttributeList.h"
152de962bdSlukem #include "LDAPEntry.h"
162de962bdSlukem #include "LDAPException.h"
172de962bdSlukem #include "LDAPModification.h"
182de962bdSlukem
192de962bdSlukem #include "debug.h"
202de962bdSlukem
main()212de962bdSlukem int main(){
222de962bdSlukem LDAPConstraints* cons=new LDAPConstraints;
232de962bdSlukem LDAPControlSet* ctrls=new LDAPControlSet;
242de962bdSlukem ctrls->add(LDAPCtrl(LDAP_CONTROL_MANAGEDSAIT));
252de962bdSlukem cons->setServerControls(ctrls);
262de962bdSlukem LDAPConnection *lc=new LDAPConnection("localhost",9009);
272de962bdSlukem lc->setConstraints(cons);
282de962bdSlukem std::cout << "----------------------doing bind...." << std::endl;
292de962bdSlukem try{
302de962bdSlukem lc->bind("cn=Manager,o=Organisation,c=DE" , "secret",cons);
312de962bdSlukem std::cout << lc->getHost() << std::endl;
322de962bdSlukem bool result = lc->compare("cn=Manager,o=Organisation,c=DE",
33*e670fd5cSchristos LDAPAttribute("cn","Manager"));
342de962bdSlukem std::cout << "Compare: " << result << std::endl;
352de962bdSlukem
362de962bdSlukem LDAPAttributeList* attrs=new LDAPAttributeList();
372de962bdSlukem StringList values;
382de962bdSlukem StringList s2;
392de962bdSlukem values.add("top");
402de962bdSlukem values.add("Person");
412de962bdSlukem attrs->addAttribute(LDAPAttribute("objectClass",values));
422de962bdSlukem attrs->addAttribute(LDAPAttribute("cn","Peter"));
432de962bdSlukem attrs->addAttribute(LDAPAttribute("sn","Peter,hallo"));
442de962bdSlukem LDAPEntry* entry=new LDAPEntry(
452de962bdSlukem "cn=Peter , o=Organisation, c=DE", attrs);
462de962bdSlukem // lc->add(entry);
472de962bdSlukem
482de962bdSlukem // lc->del("ou=Groups,o=Organisation,c=DE");
492de962bdSlukem
502de962bdSlukem LDAPSearchResults* entries = lc->search("o=Organisation,c=DE",
512de962bdSlukem LDAPConnection::SEARCH_ONE);
522de962bdSlukem if (entries != 0){
532de962bdSlukem LDAPEntry* entry = entries->getNext();
542de962bdSlukem if(entry != 0){
552de962bdSlukem std::cout << *(entry) << std::endl;
562de962bdSlukem }
572de962bdSlukem while(entry){
582de962bdSlukem try{
592de962bdSlukem entry = entries->getNext();
602de962bdSlukem if(entry != 0){
612de962bdSlukem std::cout << *(entry) << std::endl;
622de962bdSlukem }
632de962bdSlukem delete entry;
642de962bdSlukem }catch(LDAPReferralException e){
652de962bdSlukem std::cout << "Caught Referral" << std::endl;
662de962bdSlukem }
672de962bdSlukem }
682de962bdSlukem }
692de962bdSlukem
702de962bdSlukem lc->unbind();
712de962bdSlukem delete lc;
722de962bdSlukem }catch (LDAPException &e){
732de962bdSlukem std::cout << "-------------- caught Exception ---------"<< std::endl;
742de962bdSlukem std::cout << e << std::endl;
752de962bdSlukem }
762de962bdSlukem
772de962bdSlukem /*
782de962bdSlukem std::cout << "--------------------starting search" << std::endl;
792de962bdSlukem LDAPAttributeList* attrs=new LDAPAttributeList();
802de962bdSlukem StringList values;
812de962bdSlukem values.add("top");
822de962bdSlukem values.add("organizationalUnit");
832de962bdSlukem attrs->addAttribute(LDAPAttribute("objectClass",values));
842de962bdSlukem attrs->addAttribute(LDAPAttribute("ou","Groups"));
852de962bdSlukem LDAPEntry* entry=new LDAPEntry(
862de962bdSlukem "ou=Groups, o=Organisation, c=DE", attrs);
872de962bdSlukem
882de962bdSlukem LDAPAttribute newattr("description");
892de962bdSlukem LDAPModification::mod_op op = LDAPModification::OP_DELETE;
902de962bdSlukem LDAPModList *mod=new LDAPModList();
912de962bdSlukem mod->addModification(LDAPModification(newattr,op));
922de962bdSlukem LDAPMessageQueue* q=0;
932de962bdSlukem try{
942de962bdSlukem q=lc->search("o=Organisation,c=de",LDAPAsynConnection::SEARCH_SUB,
952de962bdSlukem "objectClass=*",StringList());
962de962bdSlukem // q=lc->add(entry);
972de962bdSlukem // q=lc->modify("cn=Manager,o=Organisation,c=DE",
982de962bdSlukem // mod);
992de962bdSlukem LDAPMsg *res=q->getNext();
1002de962bdSlukem bool cont=true;
1012de962bdSlukem while( cont ) {
1022de962bdSlukem switch(res->getMessageType()){
1032de962bdSlukem LDAPSearchResult *res2;
1042de962bdSlukem const LDAPEntry *entry;
1052de962bdSlukem case LDAP_RES_SEARCH_ENTRY :
1062de962bdSlukem res2= (LDAPSearchResult*)res;
1072de962bdSlukem entry= res2->getEntry();
1082de962bdSlukem std::cout << "Entry: " << *entry << std::endl;
1092de962bdSlukem delete res;
1102de962bdSlukem res=q->getNext();
1112de962bdSlukem break;
1122de962bdSlukem case LDAP_RES_SEARCH_REFERENCE :
1132de962bdSlukem std::cout << "Reference: " << std::endl;
1142de962bdSlukem delete res;
1152de962bdSlukem res=q->getNext();
1162de962bdSlukem break;
1172de962bdSlukem default :
1182de962bdSlukem std::cout << ( *(LDAPResult*) res) << std::endl;
1192de962bdSlukem delete res;
1202de962bdSlukem std::cout << "-----------------search done" << std::endl;
1212de962bdSlukem cont=false;
1222de962bdSlukem break;
1232de962bdSlukem }
1242de962bdSlukem }
1252de962bdSlukem delete q;
1262de962bdSlukem }catch (LDAPException e){
1272de962bdSlukem std::cout << "----------------error during search" << std::endl;
1282de962bdSlukem delete q;
1292de962bdSlukem std::cout << e << std::endl;
1302de962bdSlukem }
1312de962bdSlukem lc->unbind();
1322de962bdSlukem */
1332de962bdSlukem }
1342de962bdSlukem
135