diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:35:32 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:35:32 +0000 |
commit | 5ea77a75dd2d2158401331879f3c8f47940a732c (patch) | |
tree | d89dc06e9f4850a900f161e25f84e922c4f86cc8 /contrib/ldapc++/src/LDAPConstraints.cpp | |
parent | Initial commit. (diff) | |
download | openldap-upstream.tar.xz openldap-upstream.zip |
Adding upstream version 2.5.13+dfsg.upstream/2.5.13+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'contrib/ldapc++/src/LDAPConstraints.cpp')
-rw-r--r-- | contrib/ldapc++/src/LDAPConstraints.cpp | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/contrib/ldapc++/src/LDAPConstraints.cpp b/contrib/ldapc++/src/LDAPConstraints.cpp new file mode 100644 index 0000000..c91d7ca --- /dev/null +++ b/contrib/ldapc++/src/LDAPConstraints.cpp @@ -0,0 +1,178 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#include "debug.h" +#include "config.h" +#include "ac/time.h" +#include "LDAPConstraints.h" +#include "LDAPControlSet.h" + +using namespace std; + +LDAPConstraints::LDAPConstraints(){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPConstraints::LDAPConstraints()" << endl); + m_aliasDeref=LDAPConstraints::DEREF_NEVER; + m_maxTime=LDAP_NO_LIMIT; + m_maxSize=LDAP_NO_LIMIT; + m_referralChase=false; + m_HopLimit=7; + m_serverControls=0; + m_clientControls=0; + m_refRebind=0; +} + +LDAPConstraints::LDAPConstraints(const LDAPConstraints& c){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPConstraints::LDAPConstraints(&)" << endl); + m_aliasDeref=c.m_aliasDeref; + m_maxTime=c.m_maxTime; + m_maxSize=c.m_maxSize; + m_referralChase=c.m_referralChase; + m_HopLimit=c.m_HopLimit; + m_deref=c.m_deref; + if(c.m_serverControls){ + m_serverControls=new LDAPControlSet(*c.m_serverControls); + }else{ + m_serverControls=0; + } + if(c.m_clientControls){ + m_clientControls=new LDAPControlSet(*c.m_clientControls); + }else{ + m_clientControls=0; + } + m_refRebind=c.m_refRebind; +} + +LDAPConstraints::~LDAPConstraints(){ + DEBUG(LDAP_DEBUG_DESTROY,"LDAPConstraints::~LDAPConstraints()" << endl); + delete m_clientControls; + delete m_serverControls; +} + +void LDAPConstraints::setAliasDeref(int deref){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setAliasDeref()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, + " deref:" << deref << endl); + if( (deref == LDAPConstraints::DEREF_NEVER) || + (deref == LDAPConstraints::DEREF_SEARCHING) || + (deref == LDAPConstraints::DEREF_FINDING) || + (deref == LDAPConstraints::DEREF_ALWAYS) + ){ + m_aliasDeref=deref; + } +} + + +void LDAPConstraints::setMaxTime(int t){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setMaxTime()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," time:" << t << endl); + m_maxTime=t; +} + +void LDAPConstraints::setSizeLimit(int s){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setSizeLimit()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," size:" << s << endl); + m_maxSize=s; +} + +void LDAPConstraints::setReferralChase(bool rc){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralChase()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER," rc:" << rc << endl); + m_referralChase=rc; +} + +void LDAPConstraints::setHopLimit(int limit){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setHopLimit()" << endl); + DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, + " limit:" << limit << endl); + m_HopLimit=limit; +} + +void LDAPConstraints::setReferralRebind(const LDAPRebind* rebind){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setReferralRebind()" << endl); + m_refRebind = rebind; +} + +void LDAPConstraints::setServerControls(const LDAPControlSet* ctrls){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setServerControls()" << endl); + m_serverControls=new LDAPControlSet(*ctrls); +} + +void LDAPConstraints::setClientControls(const LDAPControlSet* ctrls){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::setClientControls()" << endl); + m_clientControls=new LDAPControlSet(*ctrls); +} + +int LDAPConstraints::getAliasDeref() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getAliasDeref()" << endl); + return m_aliasDeref; +} + +int LDAPConstraints::getMaxTime() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getMaxTime()" << endl); + return m_maxTime; +} + +int LDAPConstraints::getSizeLimit() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getSizeLimit()" << endl); + return m_maxSize; +} + +const LDAPRebind* LDAPConstraints::getReferralRebind() const{ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getReferralRebind()" << endl); + return m_refRebind; +} + +const LDAPControlSet* LDAPConstraints::getServerControls() const{ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getServerControls()" << endl); + return m_serverControls; +} + +const LDAPControlSet* LDAPConstraints::getClientControls() const{ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getClientControls()" << endl); + return m_clientControls; +} + +LDAPControl** LDAPConstraints::getSrvCtrlsArray() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getSrvCtrlsArray()" << endl); + if(m_serverControls){ + return m_serverControls->toLDAPControlArray(); + }else{ + return 0; + } +} + +LDAPControl** LDAPConstraints::getClCtrlsArray() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getClCtrlsArray()" << endl); + if(m_clientControls){ + return m_clientControls->toLDAPControlArray(); + }else{ + return 0; + } +} + +timeval* LDAPConstraints::getTimeoutStruct() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getTimeoutStruct()" << endl); + if(m_maxTime == LDAP_NO_LIMIT){ + return 0; + }else{ + timeval *ret = new timeval; + ret->tv_sec=m_maxTime; + ret->tv_usec=0; + return ret; + } +} + +bool LDAPConstraints::getReferralChase() const { + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getReferralChase()" << endl); + return m_referralChase; +} + +int LDAPConstraints::getHopLimit() const{ + DEBUG(LDAP_DEBUG_TRACE,"LDAPConstraints::getHopLimit()" << endl); + return m_HopLimit; +} + |