xref: /netbsd-src/external/bsd/openldap/dist/contrib/ldapc++/src/LDAPConstraints.cpp (revision e670fd5c413e99c2f6a37901bb21c537fcd322d2)
1d11b170bStron // $OpenLDAP$
22de962bdSlukem /*
3*e670fd5cSchristos  * Copyright 2000-2021 The OpenLDAP Foundation, All Rights Reserved.
42de962bdSlukem  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
52de962bdSlukem  */
62de962bdSlukem 
72de962bdSlukem 
82de962bdSlukem #include "debug.h"
92de962bdSlukem #include "config.h"
102de962bdSlukem #include "ac/time.h"
112de962bdSlukem #include "LDAPConstraints.h"
122de962bdSlukem #include "LDAPControlSet.h"
132de962bdSlukem 
142de962bdSlukem using namespace std;
152de962bdSlukem 
LDAPConstraints()162de962bdSlukem LDAPConstraints::LDAPConstraints(){
172de962bdSlukem     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPConstraints::LDAPConstraints()" << endl);
182de962bdSlukem     m_aliasDeref=LDAPConstraints::DEREF_NEVER;
192de962bdSlukem 	m_maxTime=LDAP_NO_LIMIT;
202de962bdSlukem 	m_maxSize=LDAP_NO_LIMIT;
212de962bdSlukem 	m_referralChase=false;
222de962bdSlukem     m_HopLimit=7;
232de962bdSlukem     m_serverControls=0;
242de962bdSlukem     m_clientControls=0;
252de962bdSlukem     m_refRebind=0;
262de962bdSlukem }
272de962bdSlukem 
LDAPConstraints(const LDAPConstraints & c)282de962bdSlukem LDAPConstraints::LDAPConstraints(const LDAPConstraints& c){
292de962bdSlukem     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPConstraints::LDAPConstraints(&)" << endl);
302de962bdSlukem     m_aliasDeref=c.m_aliasDeref;
312de962bdSlukem     m_maxTime=c.m_maxTime;
322de962bdSlukem     m_maxSize=c.m_maxSize;
332de962bdSlukem     m_referralChase=c.m_referralChase;
342de962bdSlukem     m_HopLimit=c.m_HopLimit;
352de962bdSlukem     m_deref=c.m_deref;
362de962bdSlukem     if(c.m_serverControls){
372de962bdSlukem         m_serverControls=new LDAPControlSet(*c.m_serverControls);
382de962bdSlukem     }else{
392de962bdSlukem         m_serverControls=0;
402de962bdSlukem     }
412de962bdSlukem     if(c.m_clientControls){
422de962bdSlukem         m_clientControls=new LDAPControlSet(*c.m_clientControls);
432de962bdSlukem     }else{
442de962bdSlukem         m_clientControls=0;
452de962bdSlukem     }
462de962bdSlukem     m_refRebind=c.m_refRebind;
472de962bdSlukem }
482de962bdSlukem 
~LDAPConstraints()492de962bdSlukem LDAPConstraints::~LDAPConstraints(){
502de962bdSlukem     DEBUG(LDAP_DEBUG_DESTROY,"LDAPConstraints::~LDAPConstraints()" << endl);
512de962bdSlukem     delete m_clientControls;
522de962bdSlukem     delete m_serverControls;
532de962bdSlukem }
542de962bdSlukem 
setAliasDeref(int deref)552de962bdSlukem void LDAPConstraints::setAliasDeref(int deref){
562de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setAliasDeref()" << endl);
572de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER,
582de962bdSlukem             "   deref:" << deref << endl);
592de962bdSlukem     if( (deref == LDAPConstraints::DEREF_NEVER) ||
602de962bdSlukem             (deref == LDAPConstraints::DEREF_SEARCHING) ||
612de962bdSlukem             (deref == LDAPConstraints::DEREF_FINDING) ||
622de962bdSlukem             (deref == LDAPConstraints::DEREF_ALWAYS)
632de962bdSlukem         ){
642de962bdSlukem         m_aliasDeref=deref;
652de962bdSlukem     }
662de962bdSlukem }
672de962bdSlukem 
682de962bdSlukem 
setMaxTime(int t)692de962bdSlukem void LDAPConstraints::setMaxTime(int t){
702de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setMaxTime()" << endl);
712de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER,"   time:" << t << endl);
722de962bdSlukem     m_maxTime=t;
732de962bdSlukem }
742de962bdSlukem 
setSizeLimit(int s)752de962bdSlukem void LDAPConstraints::setSizeLimit(int s){
762de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setSizeLimit()" << endl);
772de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER,"   size:" << s << endl);
782de962bdSlukem 	m_maxSize=s;
792de962bdSlukem }
802de962bdSlukem 
setReferralChase(bool rc)812de962bdSlukem void LDAPConstraints::setReferralChase(bool rc){
822de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralChase()" << endl);
832de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER,"   rc:" << rc << endl);
842de962bdSlukem     m_referralChase=rc;
852de962bdSlukem }
862de962bdSlukem 
setHopLimit(int limit)872de962bdSlukem void LDAPConstraints::setHopLimit(int limit){
882de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setHopLimit()" << endl);
892de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER,
902de962bdSlukem             "   limit:" << limit << endl);
912de962bdSlukem     m_HopLimit=limit;
922de962bdSlukem }
932de962bdSlukem 
setReferralRebind(const LDAPRebind * rebind)942de962bdSlukem void LDAPConstraints::setReferralRebind(const LDAPRebind* rebind){
952de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralRebind()" << endl);
962de962bdSlukem     m_refRebind = rebind;
972de962bdSlukem }
982de962bdSlukem 
setServerControls(const LDAPControlSet * ctrls)992de962bdSlukem void LDAPConstraints::setServerControls(const LDAPControlSet* ctrls){
1002de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setServerControls()" << endl);
1012de962bdSlukem     m_serverControls=new LDAPControlSet(*ctrls);
1022de962bdSlukem }
1032de962bdSlukem 
setClientControls(const LDAPControlSet * ctrls)1042de962bdSlukem void LDAPConstraints::setClientControls(const LDAPControlSet* ctrls){
1052de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setClientControls()" << endl);
1062de962bdSlukem     m_clientControls=new LDAPControlSet(*ctrls);
1072de962bdSlukem }
1082de962bdSlukem 
getAliasDeref() const1092de962bdSlukem int LDAPConstraints::getAliasDeref() const {
1102de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getAliasDeref()" << endl);
1112de962bdSlukem     return m_aliasDeref;
1122de962bdSlukem }
1132de962bdSlukem 
getMaxTime() const1142de962bdSlukem int LDAPConstraints::getMaxTime() const {
1152de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getMaxTime()" << endl);
1162de962bdSlukem 	return m_maxTime;
1172de962bdSlukem }
1182de962bdSlukem 
getSizeLimit() const1192de962bdSlukem int LDAPConstraints::getSizeLimit() const {
1202de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getSizeLimit()" << endl);
1212de962bdSlukem 	return m_maxSize;
1222de962bdSlukem }
1232de962bdSlukem 
getReferralRebind() const1242de962bdSlukem const LDAPRebind* LDAPConstraints::getReferralRebind() const{
1252de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getReferralRebind()" << endl);
1262de962bdSlukem     return m_refRebind;
1272de962bdSlukem }
1282de962bdSlukem 
getServerControls() const1292de962bdSlukem const LDAPControlSet* LDAPConstraints::getServerControls() const{
1302de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getServerControls()" << endl);
1312de962bdSlukem     return m_serverControls;
1322de962bdSlukem }
1332de962bdSlukem 
getClientControls() const1342de962bdSlukem const LDAPControlSet* LDAPConstraints::getClientControls() const{
1352de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getClientControls()" << endl);
1362de962bdSlukem     return m_clientControls;
1372de962bdSlukem }
1382de962bdSlukem 
getSrvCtrlsArray() const1392de962bdSlukem LDAPControl** LDAPConstraints::getSrvCtrlsArray() const {
140*e670fd5cSchristos     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getSrvCtrlsArray()" << endl);
1412de962bdSlukem     if(m_serverControls){
1422de962bdSlukem         return m_serverControls->toLDAPControlArray();
1432de962bdSlukem     }else{
1442de962bdSlukem         return 0;
1452de962bdSlukem     }
1462de962bdSlukem }
1472de962bdSlukem 
getClCtrlsArray() const1482de962bdSlukem LDAPControl** LDAPConstraints::getClCtrlsArray() const {
149*e670fd5cSchristos     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getClCtrlsArray()" << endl);
1502de962bdSlukem     if(m_clientControls){
1512de962bdSlukem         return m_clientControls->toLDAPControlArray();
1522de962bdSlukem     }else{
1532de962bdSlukem         return 0;
1542de962bdSlukem     }
1552de962bdSlukem }
1562de962bdSlukem 
getTimeoutStruct() const1572de962bdSlukem timeval* LDAPConstraints::getTimeoutStruct() const {
158*e670fd5cSchristos     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getTimeoutStruct()" << endl);
1592de962bdSlukem     if(m_maxTime == LDAP_NO_LIMIT){
1602de962bdSlukem         return 0;
1612de962bdSlukem     }else{
1622de962bdSlukem         timeval *ret = new timeval;
1632de962bdSlukem         ret->tv_sec=m_maxTime;
1642de962bdSlukem         ret->tv_usec=0;
1652de962bdSlukem         return ret;
1662de962bdSlukem     }
1672de962bdSlukem }
1682de962bdSlukem 
getReferralChase() const1692de962bdSlukem bool LDAPConstraints::getReferralChase() const {
170*e670fd5cSchristos     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getReferralChase()" << endl);
1712de962bdSlukem 	return m_referralChase;
1722de962bdSlukem }
1732de962bdSlukem 
getHopLimit() const1742de962bdSlukem int LDAPConstraints::getHopLimit() const{
175*e670fd5cSchristos     DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getHopLimit()" << endl);
1762de962bdSlukem     return m_HopLimit;
1772de962bdSlukem }
1782de962bdSlukem 
179