1 // OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPExtResult.cpp,v 1.2.10.1 2008/04/14 23:09:26 quanah Exp
2 /*
3  * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6 
7 #include "debug.h"
8 #include <lber.h>
9 #include "LDAPRequest.h"
10 #include "LDAPException.h"
11 
12 #include "LDAPResult.h"
13 #include "LDAPExtResult.h"
14 
15 using namespace std;
16 
17 LDAPExtResult::LDAPExtResult(const LDAPRequest* req, LDAPMessage* msg) :
18         LDAPResult(req, msg){
19     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPExtResult::LDAPExtResult()" << endl);
20     char* oid = 0;
21     BerValue* data = 0;
22     LDAP* lc = req->getConnection()->getSessionHandle();
23     int err=ldap_parse_extended_result(lc, msg, &oid, &data, 0);
24     if(err != LDAP_SUCCESS){
25         ber_bvfree(data);
26         ldap_memfree(oid);
27         throw LDAPException(err);
28     }else{
29         m_oid=string(oid);
30         ldap_memfree(oid);
31         if(data){
32             m_data=string(data->bv_val, data->bv_len);
33             ber_bvfree(data);
34         }
35     }
36 }
37 
38 LDAPExtResult::~LDAPExtResult(){
39     DEBUG(LDAP_DEBUG_DESTROY,"LDAPExtResult::~LDAPExtResult()" << endl);
40 }
41 
42 const string& LDAPExtResult::getResponseOid() const{
43     return m_oid;
44 }
45 
46 const string& LDAPExtResult::getResponse() const{
47     return m_data;
48 }
49 
50