/* * Copyright 2000, OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ #include #include "debug.h" #include "LDAPModDNRequest.h" #include "LDAPException.h" #include "LDAPUrlList.h" LDAPModDNRequest::LDAPModDNRequest(const LDAPModDNRequest& req) : LDAPRequest(req){ DEBUG(LDAP_DEBUG_TRACE, "LDAPModDNRequest::LDAPModDNRequest(LDAPModDNRequest&)" << endl); } LDAPModDNRequest::LDAPModDNRequest(const char *dn, const char *newRDN, bool deleteOld, const char *newParentDN, const LDAPAsynConnection *connect, const LDAPConstraints *cons, bool isReferral=false): LDAPRequest(connect, cons, isReferral){ DEBUG(LDAP_DEBUG_TRACE, "LDAPModDNRequest::LDAPModDNRequest()" << endl); DEBUG(LDAP_DEBUG_PARAMETER, " dn:" << dn << endl << " newRDN:" << newRDN << endl << " deleteOld:" << deleteOld << endl << " newParentDN:" << newParentDN << endl); assert(dn); m_dn = strdup(dn); assert(newRDN); m_newRDN = strdup(newRDN); if (newParentDN){ m_newParentDN = strdup(newParentDN); }else{ m_newParentDN = 0; } m_deleteOld=deleteOld; } LDAPModDNRequest::~LDAPModDNRequest(){ DEBUG(LDAP_DEBUG_TRACE, "LDAPModDNRequest::~LDAPModDNRequest()" << endl); delete[] m_dn; delete[] m_newRDN; delete[] m_newParentDN; } LDAPMessageQueue* LDAPModDNRequest::sendRequest(){ int msg_id; int err=ldap_rename(m_connection->getSessionHandle(),m_dn,m_newRDN, m_newParentDN,m_deleteOld ? 1 : 0, m_cons->getSrvCtrlsArray(), m_cons->getClCtrlsArray(),&msg_id); if(err!=LDAP_SUCCESS){ delete this; throw LDAPException(err); }else{ m_msgID=msg_id; return new LDAPMessageQueue(this); } } LDAPRequest* LDAPModDNRequest::followReferral(LDAPUrlList *urls){ DEBUG(LDAP_DEBUG_TRACE, "LDAPModifyRequest::followReferral()" << endl); cerr << "to be implemented ..." << endl; return 0; }