2 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
11 #include "LDAPAddRequest.h"
12 #include "LDAPEntry.h"
13 #include "LDAPException.h"
14 #include "LDAPMessageQueue.h"
16 LDAPAddRequest::LDAPAddRequest(const LDAPAddRequest& req) :
18 DEBUG(LDAP_DEBUG_TRACE, "LDAPAddRequest::LDAPAddRequest(LDAPAddRequest&)"
22 LDAPAddRequest::LDAPAddRequest(const LDAPEntry *entry,
23 const LDAPAsynConnection *connect, const LDAPConstraints *cons,
24 bool isReferral=false)
25 : LDAPRequest(connect, cons, isReferral){
26 DEBUG(LDAP_DEBUG_TRACE, "LDAPAddRequest::LDAPAddRequest()" << endl);
27 DEBUG(LDAP_DEBUG_PARAMETER, " entry:" << *entry << endl
28 << " isReferral:" << isReferral << endl);
29 m_requestType = LDAPRequest::ADD;
30 m_entry = new LDAPEntry(*entry);
33 LDAPAddRequest::~LDAPAddRequest(){
34 DEBUG(LDAP_DEBUG_TRACE, "LDAPAddRequest::~LDAPAddRequest()" << endl);
38 LDAPMessageQueue* LDAPAddRequest::sendRequest(){
39 DEBUG(LDAP_DEBUG_TRACE, "LDAPAddRequest::sendRequest()" << endl);
41 LDAPAttributeList *attrList = m_entry->getAttributes();
42 int err=ldap_add_ext(m_connection->getSessionHandle(),
43 m_entry->getDN(),attrList->toLDAPModArray(),
44 m_cons->getSrvCtrlsArray(), m_cons->getClCtrlsArray(),&msgID);
45 if(err != LDAP_SUCCESS){
47 throw LDAPException(err);
50 return new LDAPMessageQueue(this);
54 LDAPRequest* LDAPAddRequest::followReferral(LDAPUrlList *urls){
55 DEBUG(LDAP_DEBUG_TRACE, "LDAPAddRequest::followReferral()"<< endl);
56 cerr << "to be implemented" << endl;