diff options
Diffstat (limited to 'contrib/ldapc++/src/LDAPMessage.cpp')
-rw-r--r-- | contrib/ldapc++/src/LDAPMessage.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/contrib/ldapc++/src/LDAPMessage.cpp b/contrib/ldapc++/src/LDAPMessage.cpp new file mode 100644 index 0000000..f63212a --- /dev/null +++ b/contrib/ldapc++/src/LDAPMessage.cpp @@ -0,0 +1,72 @@ +// $OpenLDAP$ +/* + * Copyright 2000-2022 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + + +#include "LDAPMessage.h" + +#include "LDAPResult.h" +#include "LDAPExtResult.h" +#include "LDAPSaslBindResult.h" +#include "LDAPRequest.h" +#include "LDAPSearchResult.h" +#include "LDAPSearchReference.h" +#include "debug.h" +#include <iostream> + +using namespace std; + +LDAPMsg::LDAPMsg(LDAPMessage *msg){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl); + msgType=ldap_msgtype(msg); + m_hasControls=false; +} + +LDAPMsg::LDAPMsg(int type, int id=0){ + DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl); + msgType = type; + msgID = id; + m_hasControls=false; +} + +LDAPMsg* LDAPMsg::create(const LDAPRequest *req, LDAPMessage *msg){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::create()" << endl); + switch(ldap_msgtype(msg)){ + case SEARCH_ENTRY : + return new LDAPSearchResult(req,msg); + break; + case SEARCH_REFERENCE : + return new LDAPSearchReference(req, msg); + break; + case EXTENDED_RESPONSE : + return new LDAPExtResult(req,msg); + break; + case BIND_RESPONSE : + return new LDAPSaslBindResult(req,msg); + default : + return new LDAPResult(req, msg); + } + return 0; +} + + +int LDAPMsg::getMessageType(){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMessageType()" << endl); + return msgType; +} + +int LDAPMsg::getMsgID(){ + DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMsgID()" << endl); + return msgID; +} + +bool LDAPMsg::hasControls() const{ + return m_hasControls; +} + +const LDAPControlSet& LDAPMsg::getSrvControls() const { + return m_srvControls; +} + |