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