~ttx/openldap/lucid-gssapi-495418

« back to all changes in this revision

Viewing changes to contrib/ldapc++/src/LDAPControl.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Mathias Gug
  • Date: 2008-07-10 14:45:49 UTC
  • Revision ID: james.westby@ubuntu.com-20080710144549-wck73med0e72gfyo
Tags: upstream-2.4.10
ImportĀ upstreamĀ versionĀ 2.4.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// $OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPControl.cpp,v 1.4.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
 
 
8
#include "LDAPControl.h"
 
9
#include "debug.h"
 
10
 
 
11
using namespace std;
 
12
 
 
13
LDAPCtrl::LDAPCtrl(const LDAPCtrl& c){
 
14
    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl(&)" << endl);
 
15
    m_oid=c.m_oid;
 
16
    m_data=c.m_data;
 
17
    m_isCritical=c.m_isCritical;
 
18
}
 
19
 
 
20
LDAPCtrl::LDAPCtrl(const char *oid, bool critical, const char* data,
 
21
        int length){
 
22
    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
 
23
    DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER,
 
24
            "   oid:" << oid << endl << "   critical:" << critical << endl);
 
25
    m_oid = oid;
 
26
    m_isCritical=critical;
 
27
    if (data != 0 && length !=0){
 
28
        m_data.assign(data,length);
 
29
    }else{
 
30
        m_data=string();
 
31
    }
 
32
}
 
33
 
 
34
 
 
35
LDAPCtrl::LDAPCtrl(const string& oid, bool critical, const string& data){
 
36
    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
 
37
    DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER,
 
38
            "   oid:" << oid << endl << "   critical:" << critical << endl);
 
39
    m_oid=oid;
 
40
    m_isCritical=critical;
 
41
    m_data=data;
 
42
}
 
43
 
 
44
LDAPCtrl::LDAPCtrl(const LDAPControl* ctrl){
 
45
    DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
 
46
    m_oid = string(ctrl->ldctl_oid);
 
47
    m_oid = ctrl->ldctl_iscritical ? true : false;
 
48
    m_oid = string(ctrl->ldctl_value.bv_val, ctrl->ldctl_value.bv_len );
 
49
}
 
50
 
 
51
LDAPCtrl::~LDAPCtrl(){
 
52
    DEBUG(LDAP_DEBUG_DESTROY,"LDAPCtrl::~LDAPCtrl" << endl);
 
53
}
 
54
 
 
55
string LDAPCtrl::getOID() const{
 
56
    DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getOID()" << endl);
 
57
    return m_oid;
 
58
}
 
59
 
 
60
bool LDAPCtrl::isCritical()const {
 
61
    DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::isCritical()" << endl);
 
62
    return m_isCritical;
 
63
}
 
64
 
 
65
string LDAPCtrl::getData() const {
 
66
    DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getData()" << endl);
 
67
    return m_data;
 
68
}
 
69
         
 
70
LDAPControl* LDAPCtrl::getControlStruct() const {
 
71
    DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getControlStruct()" << endl);
 
72
    LDAPControl* ret = new LDAPControl;
 
73
    ret->ldctl_oid= new char[m_oid.size() + 1];
 
74
    m_oid.copy(ret->ldctl_oid,string::npos);
 
75
    ret->ldctl_oid[m_oid.size()]=0;
 
76
    ret->ldctl_value.bv_len=m_data.size();
 
77
    ret->ldctl_value.bv_val= new char[m_data.size()];
 
78
    m_data.copy(ret->ldctl_value.bv_val,string::npos);
 
79
    ret->ldctl_iscritical = ( m_isCritical ? 1:0);
 
80
    return ret;
 
81
}
 
82
 
 
83
void LDAPCtrl::freeLDAPControlStruct(LDAPControl *ctrl){
 
84
    DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::freeControlStruct()" << endl);
 
85
    delete[] ctrl->ldctl_oid;
 
86
    delete[] ctrl->ldctl_value.bv_val;
 
87
    delete ctrl;
 
88
}
 
89