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