3 * Copyright 2000-2012 The OpenLDAP Foundation, All Rights Reserved.
4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
11 #include "LDAPConstraints.h"
12 #include "LDAPControlSet.h"
16 LDAPConstraints::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;
28 LDAPConstraints::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;
36 if(c.m_serverControls){
37 m_serverControls=new LDAPControlSet(*c.m_serverControls);
41 if(c.m_clientControls){
42 m_clientControls=new LDAPControlSet(*c.m_clientControls);
46 m_refRebind=c.m_refRebind;
49 LDAPConstraints::~LDAPConstraints(){
50 DEBUG(LDAP_DEBUG_DESTROY,"LDAPConstraints::~LDAPConstraints()" << endl);
51 delete m_clientControls;
52 delete m_serverControls;
55 void 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)
69 void LDAPConstraints::setMaxTime(int t){
70 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setMaxTime()" << endl);
71 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," time:" << t << endl);
75 void LDAPConstraints::setSizeLimit(int s){
76 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setSizeLimit()" << endl);
77 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," size:" << s << endl);
81 void LDAPConstraints::setReferralChase(bool rc){
82 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralChase()" << endl);
83 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," rc:" << rc << endl);
87 void LDAPConstraints::setHopLimit(int limit){
88 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setHopLimit()" << endl);
89 DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER,
90 " limit:" << limit << endl);
94 void LDAPConstraints::setReferralRebind(const LDAPRebind* rebind){
95 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralRebind()" << endl);
99 void LDAPConstraints::setServerControls(const LDAPControlSet* ctrls){
100 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setServerControls()" << endl);
101 m_serverControls=new LDAPControlSet(*ctrls);
104 void LDAPConstraints::setClientControls(const LDAPControlSet* ctrls){
105 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setClientControls()" << endl);
106 m_clientControls=new LDAPControlSet(*ctrls);
109 int LDAPConstraints::getAliasDeref() const {
110 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getAliasDeref()" << endl);
114 int LDAPConstraints::getMaxTime() const {
115 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getMaxTime()" << endl);
119 int LDAPConstraints::getSizeLimit() const {
120 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getSizeLimit()" << endl);
124 const LDAPRebind* LDAPConstraints::getReferralRebind() const{
125 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getReferralRebind()" << endl);
129 const LDAPControlSet* LDAPConstraints::getServerControls() const{
130 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getServerControls()" << endl);
131 return m_serverControls;
134 const LDAPControlSet* LDAPConstraints::getClientControls() const{
135 DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getClientControls()" << endl);
136 return m_clientControls;
139 LDAPControl** LDAPConstraints::getSrvCtrlsArray() const {
140 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getSrvCtrlsArray()" << endl);
141 if(m_serverControls){
142 return m_serverControls->toLDAPControlArray();
148 LDAPControl** LDAPConstraints::getClCtrlsArray() const {
149 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getClCtrlsArray()" << endl);
150 if(m_clientControls){
151 return m_clientControls->toLDAPControlArray();
157 timeval* LDAPConstraints::getTimeoutStruct() const {
158 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getTimeoutStruct()" << endl);
159 if(m_maxTime == LDAP_NO_LIMIT){
162 timeval *ret = new timeval;
163 ret->tv_sec=m_maxTime;
169 bool LDAPConstraints::getReferralChase() const {
170 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getReferralChase()" << endl);
171 return m_referralChase;
174 int LDAPConstraints::getHopLimit() const{
175 DEBUG(LDAP_DEBUG_TRACE,"LDAPContstraints::getHopLimit()" << endl);