2 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved.
3 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
10 #include "LDAPCompareRequest.h"
11 #include "LDAPException.h"
12 #include "LDAPMessageQueue.h"
14 LDAPCompareRequest::LDAPCompareRequest(const LDAPCompareRequest& req){
15 DEBUG(LDAP_DEBUG_TRACE,
16 "LDAPCompareRequest::LDAPCompareRequest(LDAPCompareRequest&)"
20 LDAPCompareRequest::LDAPCompareRequest(const char *dn,
21 const LDAPAttribute *attr, const LDAPAsynConnection *connect,
22 const LDAPConstraints *cons, bool isReferral=false) :
23 LDAPRequest(connect, cons, isReferral){
24 DEBUG(LDAP_DEBUG_TRACE, "LDAPCompareRequest::LDAPCompareRequest()"
26 DEBUG(LDAP_DEBUG_PARAMETER, " dn:" << dn << endl
27 << " attr:" << attr << endl);
28 m_requestType=LDAPRequest::COMPARE;
33 //TODO: test for number of values ???
34 m_attr = new LDAPAttribute(*attr);
38 LDAPCompareRequest::~LDAPCompareRequest(){
39 DEBUG(LDAP_DEBUG_TRACE, "LDAPCompareRequest::~LDAPCompareRequest()"
45 LDAPMessageQueue* LDAPCompareRequest::sendRequest(){
46 DEBUG(LDAP_DEBUG_TRACE, "LDAPCompareRequest::sendRequest()" << endl);
48 BerValue **tmp=m_attr->getValues();
49 int err=ldap_compare_ext(m_connection->getSessionHandle(),m_dn,
50 m_attr->getName(), tmp[0], m_cons->getSrvCtrlsArray(),
51 m_cons->getClCtrlsArray(), &msgID);
52 if(err != LDAP_SUCCESS){
54 throw LDAPException(err);
57 return new LDAPMessageQueue(this);
61 LDAPRequest* LDAPCompareRequest::followReferral(LDAPUrlList *urls){
62 DEBUG(LDAP_DEBUG_TRACE, "LDAPCompareRequest::followReferral()" << endl);
63 cerr << "to be implemented" << endl;