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