]> git.sur5r.net Git - openldap/blobdiff - contrib/ldapc++/src/LDAPDeleteRequest.cpp
Entry rwlock is no longer needed as concurrency is managed
[openldap] / contrib / ldapc++ / src / LDAPDeleteRequest.cpp
index 0cc34e6ac1becdc7a4a958c7052f2eda494b46af..e6fbb251b0f89bb392fdbeb4a35f3ec971e05e57 100644 (file)
@@ -12,6 +12,8 @@
 #include "LDAPMessageQueue.h"
 #include "LDAPResult.h"
 
+using namespace std;
+
 LDAPDeleteRequest::LDAPDeleteRequest( const LDAPDeleteRequest& req) :
         LDAPRequest(req){
        DEBUG(LDAP_DEBUG_CONSTRUCT, 
@@ -31,8 +33,11 @@ LDAPDeleteRequest::LDAPDeleteRequest(const string& dn,
 }
 
 LDAPDeleteRequest::~LDAPDeleteRequest(){
-       DEBUG(LDAP_DEBUG_DESTROY,
-            "LDAPDeleteRequest::~LDAPDeleteRequest()" << endl);
+    DEBUG(LDAP_DEBUG_DESTROY,
+          "LDAPDeleteRequest::~LDAPDeleteRequest()" << endl);
+    // TODO -- flush the entire cache here?  or does this invalidate
+    // cached searches that may have found the deleted entry.
+    m_connection->uncache_entry(m_dn);
 }
 
 LDAPMessageQueue* LDAPDeleteRequest::sendRequest(){
@@ -42,8 +47,8 @@ LDAPMessageQueue* LDAPDeleteRequest::sendRequest(){
     LDAPControl** tmpClCtrls=m_cons->getClCtrlsArray();
     int err=ldap_delete_ext(m_connection->getSessionHandle(),m_dn.c_str(), 
             tmpSrvCtrls, tmpClCtrls ,&msgID);
-    ldap_controls_free(tmpSrvCtrls);
-    ldap_controls_free(tmpClCtrls);
+    LDAPControlSet::freeLDAPControlArray(tmpSrvCtrls);
+    LDAPControlSet::freeLDAPControlArray(tmpClCtrls);
     if(err != LDAP_SUCCESS){
         throw LDAPException(err);
     }else{