2 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
9 #include"LDAPAsynConnection.h"
10 #include "LDAPRequest.h"
11 #include "LDAPException.h"
13 LDAPResult::LDAPResult(const LDAPRequest *req, LDAPMessage *msg) :
16 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPResult::LDAPResult()" << endl);
17 const LDAPAsynConnection *con=req->getConnection();
19 LDAPControl** srvctrls=0;
22 int err=ldap_parse_result(con->getSessionHandle(),msg,&m_resCode,
23 &matchedDN, &errMsg,&refs,&srvctrls,0);
24 if(err != LDAP_SUCCESS){
25 ldap_value_free(refs);
26 ldap_controls_free(srvctrls);
27 throw LDAPException(err);
30 m_referrals=LDAPUrlList(refs);
31 ldap_value_free(refs);
34 m_srvControls = LDAPControlSet(srvctrls);
36 ldap_controls_free(srvctrls);
38 m_hasControls = false;
41 m_matchedDN=string(matchedDN);
45 m_errMsg=string(errMsg);
52 LDAPResult::~LDAPResult(){
53 DEBUG(LDAP_DEBUG_DESTROY,"LDAPResult::~LDAPResult()" << endl);
56 int LDAPResult::getResultCode() const{
57 DEBUG(LDAP_DEBUG_TRACE,"LDAPResult::getResultCode()" << endl);
61 string LDAPResult::resToString() const{
62 DEBUG(LDAP_DEBUG_TRACE,"LDAPResult::resToString()" << endl);
63 return string(ldap_err2string(m_resCode));
66 const string& LDAPResult::getErrMsg() const{
67 DEBUG(LDAP_DEBUG_TRACE,"LDAPResult::getErrMsg()" << endl);
71 const string& LDAPResult::getMatchedDN() const{
72 DEBUG(LDAP_DEBUG_TRACE,"LDAPResult::getMatchedDN()" << endl);
76 const LDAPUrlList& LDAPResult::getReferralUrls() const{
77 DEBUG(LDAP_DEBUG_TRACE,"LDAPResult::getReferralUrl()" << endl);
81 ostream& operator<<(ostream &s,LDAPResult &l){
82 return s << "Result: " << l.m_resCode << ": "
83 << ldap_err2string(l.m_resCode) << endl
84 << "Matched: " << l.m_matchedDN << endl << "ErrMsg: " << l.m_errMsg;