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 "debug.h"
82de962bdSlukem #include <lber.h>
92de962bdSlukem #include "LDAPRequest.h"
102de962bdSlukem #include "LDAPException.h"
112de962bdSlukem
122de962bdSlukem #include "LDAPResult.h"
132de962bdSlukem #include "LDAPExtResult.h"
142de962bdSlukem
152de962bdSlukem using namespace std;
162de962bdSlukem
LDAPExtResult(const LDAPRequest * req,LDAPMessage * msg)172de962bdSlukem LDAPExtResult::LDAPExtResult(const LDAPRequest* req, LDAPMessage* msg) :
182de962bdSlukem LDAPResult(req, msg){
192de962bdSlukem DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPExtResult::LDAPExtResult()" << endl);
202de962bdSlukem char* oid = 0;
212de962bdSlukem BerValue* data = 0;
222de962bdSlukem LDAP* lc = req->getConnection()->getSessionHandle();
232de962bdSlukem int err=ldap_parse_extended_result(lc, msg, &oid, &data, 0);
242de962bdSlukem if(err != LDAP_SUCCESS){
252de962bdSlukem ber_bvfree(data);
262de962bdSlukem ldap_memfree(oid);
272de962bdSlukem throw LDAPException(err);
282de962bdSlukem }else{
292de962bdSlukem m_oid=string(oid);
302de962bdSlukem ldap_memfree(oid);
312de962bdSlukem if(data){
322de962bdSlukem m_data=string(data->bv_val, data->bv_len);
332de962bdSlukem ber_bvfree(data);
342de962bdSlukem }
352de962bdSlukem }
362de962bdSlukem }
372de962bdSlukem
~LDAPExtResult()382de962bdSlukem LDAPExtResult::~LDAPExtResult(){
392de962bdSlukem DEBUG(LDAP_DEBUG_DESTROY,"LDAPExtResult::~LDAPExtResult()" << endl);
402de962bdSlukem }
412de962bdSlukem
getResponseOid() const422de962bdSlukem const string& LDAPExtResult::getResponseOid() const{
432de962bdSlukem return m_oid;
442de962bdSlukem }
452de962bdSlukem
getResponse() const462de962bdSlukem const string& LDAPExtResult::getResponse() const{
472de962bdSlukem return m_data;
482de962bdSlukem }
492de962bdSlukem
50