1// OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPConstraints.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 "debug.h" 9#include "config.h" 10#include "ac/time.h" 11#include "LDAPConstraints.h" 12#include "LDAPControlSet.h" 13 14using namespace std; 15 16LDAPConstraints::LDAPConstraints(){ 17 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPConstraints::LDAPConstraints()" << endl); 18 m_aliasDeref=LDAPConstraints::DEREF_NEVER; 19 m_maxTime=LDAP_NO_LIMIT; 20 m_maxSize=LDAP_NO_LIMIT; 21 m_referralChase=false; 22 m_HopLimit=7; 23 m_serverControls=0; 24 m_clientControls=0; 25 m_refRebind=0; 26} 27 28LDAPConstraints::LDAPConstraints(const LDAPConstraints& c){ 29 DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPConstraints::LDAPConstraints(&)" << endl); 30 m_aliasDeref=c.m_aliasDeref; 31 m_maxTime=c.m_maxTime; 32 m_maxSize=c.m_maxSize; 33 m_referralChase=c.m_referralChase; 34 m_HopLimit=c.m_HopLimit; 35 m_deref=c.m_deref; 36 if(c.m_serverControls){ 37 m_serverControls=new LDAPControlSet(*c.m_serverControls); 38 }else{ 39 m_serverControls=0; 40 } 41 if(c.m_clientControls){ 42 m_clientControls=new LDAPControlSet(*c.m_clientControls); 43 }else{ 44 m_clientControls=0; 45 } 46 m_refRebind=c.m_refRebind; 47} 48 49LDAPConstraints::~LDAPConstraints(){ 50 DEBUG(LDAP_DEBUG_DESTROY,"LDAPConstraints::~LDAPConstraints()" << endl); 51 delete m_clientControls; 52 delete m_serverControls; 53} 54 55void LDAPConstraints::setAliasDeref(int deref){ 56 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setAliasDeref()" << endl); 57 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, 58 " deref:" << deref << endl); 59 if( (deref == LDAPConstraints::DEREF_NEVER) || 60 (deref == LDAPConstraints::DEREF_SEARCHING) || 61 (deref == LDAPConstraints::DEREF_FINDING) || 62 (deref == LDAPConstraints::DEREF_ALWAYS) 63 ){ 64 m_aliasDeref=deref; 65 } 66} 67 68 69void LDAPConstraints::setMaxTime(int t){ 70 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setMaxTime()" << endl); 71 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," time:" << t << endl); 72 m_maxTime=t; 73} 74 75void LDAPConstraints::setSizeLimit(int s){ 76 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setSizeLimit()" << endl); 77 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," size:" << s << endl); 78 m_maxSize=s; 79} 80 81void LDAPConstraints::setReferralChase(bool rc){ 82 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralChase()" << endl); 83 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," rc:" << rc << endl); 84 m_referralChase=rc; 85} 86 87void LDAPConstraints::setHopLimit(int limit){ 88 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setHopLimit()" << endl); 89 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, 90 " limit:" << limit << endl); 91 m_HopLimit=limit; 92} 93 94void LDAPConstraints::setReferralRebind(const LDAPRebind* rebind){ 95 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralRebind()" << endl); 96 m_refRebind = rebind; 97} 98 99void LDAPConstraints::setServerControls(const LDAPControlSet* ctrls){ 100 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setServerControls()" << endl); 101 m_serverControls=new LDAPControlSet(*ctrls); 102} 103 104void LDAPConstraints::setClientControls(const LDAPControlSet* ctrls){ 105 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setClientControls()" << endl); 106 m_clientControls=new LDAPControlSet(*ctrls); 107} 108 109int LDAPConstraints::getAliasDeref() const { 110 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getAliasDeref()" << endl); 111 return m_aliasDeref; 112} 113 114int LDAPConstraints::getMaxTime() const { 115 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getMaxTime()" << endl); 116 return m_maxTime; 117} 118 119int LDAPConstraints::getSizeLimit() const { 120 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getSizeLimit()" << endl); 121 return m_maxSize; 122} 123 124const LDAPRebind* LDAPConstraints::getReferralRebind() const{ 125 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getReferralRebind()" << endl); 126 return m_refRebind; 127} 128 129const LDAPControlSet* LDAPConstraints::getServerControls() const{ 130 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getServerControls()" << endl); 131 return m_serverControls; 132} 133 134const LDAPControlSet* LDAPConstraints::getClientControls() const{ 135 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getClientControls()" << endl); 136 return m_clientControls; 137} 138 139LDAPControl** LDAPConstraints::getSrvCtrlsArray() const { 140 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getSrvCtrlsArray()" << endl); 141 if(m_serverControls){ 142 return m_serverControls->toLDAPControlArray(); 143 }else{ 144 return 0; 145 } 146} 147 148LDAPControl** LDAPConstraints::getClCtrlsArray() const { 149 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getClCtrlsArray()" << endl); 150 if(m_clientControls){ 151 return m_clientControls->toLDAPControlArray(); 152 }else{ 153 return 0; 154 } 155} 156 157timeval* LDAPConstraints::getTimeoutStruct() const { 158 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getTimeoutStruct()" << endl); 159 if(m_maxTime == LDAP_NO_LIMIT){ 160 return 0; 161 }else{ 162 timeval *ret = new timeval; 163 ret->tv_sec=m_maxTime; 164 ret->tv_usec=0; 165 return ret; 166 } 167} 168 169bool LDAPConstraints::getReferralChase() const { 170 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getReferralChase()" << endl); 171 return m_referralChase; 172} 173 174int LDAPConstraints::getHopLimit() const{ 175 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getHopLimit()" << endl); 176 return m_HopLimit; 177} 178 179