1 // $OpenLDAP$ 2 /* 3 * Copyright 2000-2014 The OpenLDAP Foundation, All Rights Reserved. 4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 5 */ 6 7 8 #include <iostream> 9 10 #include "debug.h" 11 #include "LDAPSearchResult.h" 12 #include "LDAPRequest.h" 13 14 using namespace std; 15 16 LDAPSearchResult::LDAPSearchResult(const LDAPRequest *req, 17 LDAPMessage *msg) : LDAPMsg(msg){ 18 DEBUG(LDAP_DEBUG_CONSTRUCT, 19 "LDAPSearchResult::LDAPSearchResult()" << endl); 20 entry = new LDAPEntry(req->getConnection(), msg); 21 //retrieve the controls here 22 LDAPControl** srvctrls=0; 23 int err = ldap_get_entry_controls(req->getConnection()->getSessionHandle(), 24 msg,&srvctrls); 25 if(err != LDAP_SUCCESS){ 26 ldap_controls_free(srvctrls); 27 }else{ 28 if (srvctrls){ 29 m_srvControls = LDAPControlSet(srvctrls); 30 m_hasControls = true; 31 ldap_controls_free(srvctrls); 32 }else{ 33 m_hasControls = false; 34 } 35 } 36 } 37 38 LDAPSearchResult::LDAPSearchResult(const LDAPSearchResult& res) : 39 LDAPMsg(res){ 40 entry = new LDAPEntry(*(res.entry)); 41 } 42 43 LDAPSearchResult::~LDAPSearchResult(){ 44 DEBUG(LDAP_DEBUG_DESTROY,"LDAPSearchResult::~LDAPSearchResult()" << endl); 45 delete entry; 46 } 47 48 const LDAPEntry* LDAPSearchResult::getEntry() const{ 49 DEBUG(LDAP_DEBUG_TRACE,"LDAPSearchResult::getEntry()" << endl); 50 return entry; 51 } 52 53