1 // $OpenLDAP$
2 /*
3 * Copyright 2007-2021 The 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 "LDAPSaslBindResult.h"
14
15 using namespace std;
16
LDAPSaslBindResult(const LDAPRequest * req,LDAPMessage * msg)17 LDAPSaslBindResult::LDAPSaslBindResult(const LDAPRequest* req, LDAPMessage* msg) :
18 LDAPResult(req, msg){
19 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPSaslBindResult::LDAPSaslBindResult()"
20 << std::endl);
21 BerValue* data = 0;
22 LDAP* lc = req->getConnection()->getSessionHandle();
23 int err = ldap_parse_sasl_bind_result(lc, msg, &data, 0);
24 if( err != LDAP_SUCCESS && err != LDAP_SASL_BIND_IN_PROGRESS ){
25 ber_bvfree(data);
26 throw LDAPException(err);
27 }else{
28 if(data){
29 DEBUG(LDAP_DEBUG_TRACE, " creds present" << std::endl);
30 m_creds=string(data->bv_val, data->bv_len);
31 ber_bvfree(data);
32 } else {
33 DEBUG(LDAP_DEBUG_TRACE, " no creds present" << std::endl);
34 }
35 }
36 }
37
~LDAPSaslBindResult()38 LDAPSaslBindResult::~LDAPSaslBindResult(){
39 DEBUG(LDAP_DEBUG_DESTROY,"LDAPSaslBindResult::~LDAPSaslBindResult()" << endl);
40 }
41
getServerCreds() const42 const string& LDAPSaslBindResult::getServerCreds() const{
43 return m_creds;
44 }
45
46