2 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
7 #include "LDAPControl.h"
9 LDAPCtrl::LDAPCtrl(const LDAPCtrl& c){
10 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl(&)" << endl);
13 m_isCritical=c.m_isCritical;
16 LDAPCtrl::LDAPCtrl(const char *oid, bool critical, const char* data,
18 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
19 DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER,
20 " oid:" << oid << endl << " critical:" << critical << endl);
22 m_isCritical=critical;
23 if (data != 0 && length !=0){
24 m_data.assign(data,length);
31 LDAPCtrl::LDAPCtrl(const string& oid, bool critical, const string& data){
32 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
33 DEBUG(LDAP_DEBUG_CONSTRUCT | LDAP_DEBUG_PARAMETER,
34 " oid:" << oid << endl << " critical:" << critical << endl);
36 m_isCritical=critical;
40 LDAPCtrl::LDAPCtrl(const LDAPControl* ctrl){
41 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPCtrl::LDAPCtrl()" << endl);
42 m_oid = string(ctrl->ldctl_oid);
43 m_oid = ctrl->ldctl_iscritical ? true : false;
44 m_oid = string(ctrl->ldctl_value.bv_val, ctrl->ldctl_value.bv_len );
47 LDAPCtrl::~LDAPCtrl(){
48 DEBUG(LDAP_DEBUG_DESTROY,"LDAPCtrl::~LDAPCtrl" << endl);
51 string LDAPCtrl::getOID() const{
52 DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getOID()" << endl);
56 bool LDAPCtrl::isCritical()const {
57 DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::isCritical()" << endl);
61 string LDAPCtrl::getData() const {
62 DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getData()" << endl);
66 LDAPControl* LDAPCtrl::getControlStruct() const {
67 DEBUG(LDAP_DEBUG_TRACE,"LDAPCtrl::getControlStruct()" << endl);
68 LDAPControl* ret = new LDAPControl;
69 ret->ldctl_oid= new char[m_oid.size() + 1];
70 m_oid.copy(ret->ldctl_oid,string::npos);
71 ret->ldctl_oid[m_oid.size()]=0;
72 ret->ldctl_value.bv_len=m_data.size();
73 ret->ldctl_value.bv_val= new char[m_data.size()];
74 m_data.copy(ret->ldctl_value.bv_val,string::npos);
75 ret->ldctl_iscritical = ( m_isCritical ? 1:0);