xref: /netbsd-src/external/bsd/openldap/dist/contrib/ldapc++/src/LDAPSearchResult.cpp (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
1d11b170bStron // $OpenLDAP$
22de962bdSlukem /*
3*e670fd5cSchristos  * Copyright 2000-2021 The OpenLDAP Foundation, All Rights Reserved.
42de962bdSlukem  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
52de962bdSlukem  */
62de962bdSlukem 
72de962bdSlukem 
82de962bdSlukem #include <iostream>
92de962bdSlukem 
102de962bdSlukem #include "debug.h"
112de962bdSlukem #include "LDAPSearchResult.h"
122de962bdSlukem #include "LDAPRequest.h"
132de962bdSlukem 
142de962bdSlukem using namespace std;
152de962bdSlukem 
LDAPSearchResult(const LDAPRequest * req,LDAPMessage * msg)162de962bdSlukem LDAPSearchResult::LDAPSearchResult(const LDAPRequest *req,
172de962bdSlukem         LDAPMessage *msg) : LDAPMsg(msg){
182de962bdSlukem 	DEBUG(LDAP_DEBUG_CONSTRUCT,
192de962bdSlukem 		"LDAPSearchResult::LDAPSearchResult()" << endl);
202de962bdSlukem     entry = new LDAPEntry(req->getConnection(), msg);
212de962bdSlukem     //retrieve the controls here
222de962bdSlukem     LDAPControl** srvctrls=0;
232de962bdSlukem     int err = ldap_get_entry_controls(req->getConnection()->getSessionHandle(),
242de962bdSlukem             msg,&srvctrls);
252de962bdSlukem     if(err != LDAP_SUCCESS){
262de962bdSlukem         ldap_controls_free(srvctrls);
272de962bdSlukem     }else{
282de962bdSlukem         if (srvctrls){
292de962bdSlukem             m_srvControls = LDAPControlSet(srvctrls);
302de962bdSlukem             m_hasControls = true;
312de962bdSlukem             ldap_controls_free(srvctrls);
322de962bdSlukem         }else{
332de962bdSlukem             m_hasControls = false;
342de962bdSlukem         }
352de962bdSlukem     }
362de962bdSlukem }
372de962bdSlukem 
LDAPSearchResult(const LDAPSearchResult & res)382de962bdSlukem LDAPSearchResult::LDAPSearchResult(const LDAPSearchResult& res) :
392de962bdSlukem         LDAPMsg(res){
402de962bdSlukem     entry = new LDAPEntry(*(res.entry));
412de962bdSlukem }
422de962bdSlukem 
~LDAPSearchResult()432de962bdSlukem LDAPSearchResult::~LDAPSearchResult(){
442de962bdSlukem 	DEBUG(LDAP_DEBUG_DESTROY,"LDAPSearchResult::~LDAPSearchResult()" << endl);
452de962bdSlukem 	delete entry;
462de962bdSlukem }
472de962bdSlukem 
getEntry() const482de962bdSlukem const LDAPEntry* LDAPSearchResult::getEntry() const{
492de962bdSlukem 	DEBUG(LDAP_DEBUG_TRACE,"LDAPSearchResult::getEntry()" << endl);
502de962bdSlukem 	return entry;
512de962bdSlukem }
522de962bdSlukem 
53