#include "LDAPMessageQueue.h"
#include "LDAPResult.h"
+using namespace std;
+
LDAPAddRequest::LDAPAddRequest(const LDAPAddRequest& req) :
LDAPRequest(req){
DEBUG(LDAP_DEBUG_CONSTRUCT, "LDAPAddRequest::LDAPAddRequest(&)" << endl);
LDAPAddRequest::~LDAPAddRequest(){
DEBUG(LDAP_DEBUG_DESTROY, "LDAPAddRequest::~LDAPAddRequest()" << endl);
delete m_entry;
+ // flush the cache, as the add may affect searches
+ m_connection->flush_cache();
}
LDAPMessageQueue* LDAPAddRequest::sendRequest(){
LDAPControl** tmpClCtrls = m_cons->getClCtrlsArray();
int err=ldap_add_ext(m_connection->getSessionHandle(),
m_entry->getDN().c_str(),attrs,tmpSrvCtrls,tmpClCtrls,&msgID);
- ldap_controls_free(tmpSrvCtrls);
- ldap_controls_free(tmpClCtrls);
+ LDAPControlSet::freeLDAPControlArray(tmpSrvCtrls);
+ LDAPControlSet::freeLDAPControlArray(tmpClCtrls);
ldap_mods_free(attrs,1);
if(err != LDAP_SUCCESS){
throw LDAPException(err);