xref: /netbsd-src/external/bsd/openldap/dist/contrib/ldapc++/src/LDAPMessage.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 "LDAPMessage.h"
92de962bdSlukem 
102de962bdSlukem #include "LDAPResult.h"
112de962bdSlukem #include "LDAPExtResult.h"
122de962bdSlukem #include "LDAPSaslBindResult.h"
132de962bdSlukem #include "LDAPRequest.h"
142de962bdSlukem #include "LDAPSearchResult.h"
152de962bdSlukem #include "LDAPSearchReference.h"
162de962bdSlukem #include "debug.h"
172de962bdSlukem #include <iostream>
182de962bdSlukem 
192de962bdSlukem using namespace std;
202de962bdSlukem 
LDAPMsg(LDAPMessage * msg)212de962bdSlukem LDAPMsg::LDAPMsg(LDAPMessage *msg){
222de962bdSlukem     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl);
232de962bdSlukem     msgType=ldap_msgtype(msg);
242de962bdSlukem     m_hasControls=false;
252de962bdSlukem }
262de962bdSlukem 
LDAPMsg(int type,int id=0)272de962bdSlukem LDAPMsg::LDAPMsg(int type, int id=0){
282de962bdSlukem     DEBUG(LDAP_DEBUG_CONSTRUCT,"LDAPMsg::LDAPMsg()" << endl);
292de962bdSlukem     msgType = type;
302de962bdSlukem     msgID = id;
312de962bdSlukem     m_hasControls=false;
322de962bdSlukem }
332de962bdSlukem 
create(const LDAPRequest * req,LDAPMessage * msg)342de962bdSlukem LDAPMsg* LDAPMsg::create(const LDAPRequest *req, LDAPMessage *msg){
352de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::create()" << endl);
362de962bdSlukem     switch(ldap_msgtype(msg)){
372de962bdSlukem         case SEARCH_ENTRY :
382de962bdSlukem             return new LDAPSearchResult(req,msg);
392de962bdSlukem         break;
402de962bdSlukem         case SEARCH_REFERENCE :
412de962bdSlukem             return new LDAPSearchReference(req, msg);
422de962bdSlukem         break;
432de962bdSlukem         case EXTENDED_RESPONSE :
442de962bdSlukem             return new LDAPExtResult(req,msg);
452de962bdSlukem         break;
462de962bdSlukem         case BIND_RESPONSE :
472de962bdSlukem             return new LDAPSaslBindResult(req,msg);
482de962bdSlukem         default :
492de962bdSlukem             return new LDAPResult(req, msg);
502de962bdSlukem     }
512de962bdSlukem     return 0;
522de962bdSlukem }
532de962bdSlukem 
542de962bdSlukem 
getMessageType()552de962bdSlukem int LDAPMsg::getMessageType(){
562de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMessageType()" << endl);
572de962bdSlukem     return msgType;
582de962bdSlukem }
592de962bdSlukem 
getMsgID()602de962bdSlukem int LDAPMsg::getMsgID(){
612de962bdSlukem     DEBUG(LDAP_DEBUG_TRACE,"LDAPMsg::getMsgID()" << endl);
622de962bdSlukem     return msgID;
632de962bdSlukem }
642de962bdSlukem 
hasControls() const652de962bdSlukem bool LDAPMsg::hasControls() const{
662de962bdSlukem     return m_hasControls;
672de962bdSlukem }
682de962bdSlukem 
getSrvControls() const692de962bdSlukem const LDAPControlSet& LDAPMsg::getSrvControls() const {
702de962bdSlukem     return m_srvControls;
712de962bdSlukem }
722de962bdSlukem 
73