ldapsdk  0.0.1
LDAPResult.h
Go to the documentation of this file.
1 // $OpenLDAP$
2 /*
3  * Copyright 2000-2013 The OpenLDAP Foundation, All Rights Reserved.
4  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
5  */
6 
7 
8 #ifndef LDAP_RESULT_H
9 #define LDAP_RESULT_H
10 
11 #include<iostream>
12 #include<ldap.h>
13 #include <LDAPMessage.h>
14 #include <LDAPControlSet.h>
15 #include <LDAPUrlList.h>
16 
17 class LDAPRequest;
18 class LDAPAsynConnection;
19 
30 class LDAPResult : public LDAPMsg{
31  public :
32  //Error codes from RFC 2251
33  static const int SUCCESS = 0;
34  static const int OPERATIONS_ERROR = 1;
35  static const int PROTOCOL_ERROR = 2;
36  static const int TIME_LIMIT_EXCEEDED = 3;
37  static const int SIZE_LIMIT_EXCEEDED = 4;
38  static const int COMPARE_FALSE = 5;
39  static const int COMPARE_TRUE = 6;
40  static const int AUTH_METHOD_NOT_SUPPORTED = 7;
41  static const int STRONG_AUTH_REQUIRED = 8;
42 
43  static const int REFERRAL = 10;
44  static const int ADMIN_LIMIT_EXCEEDED = 11;
45  static const int UNAVAILABLE_CRITICAL_EXTENSION = 12;
46  static const int CONFIDENTIALITY_REQUIRED = 13;
47  static const int SASL_BIND_IN_PROGRESS = 14;
48 
49  static const int NO_SUCH_ATTRIBUTE = 16;
50  static const int UNDEFINED_ATTRIBUTE_TYP = 17;
51  static const int INAPPROPRIATE_MATCHING = 18;
52  static const int CONSTRAINT_VIOLATION = 19;
53  static const int ATTRIBUTE_OR_VALUE_EXISTS = 20;
54  static const int INVALID_ATTRIBUTE_SYNTAX = 21;
55 
56  static const int NO_SUCH_OBJECT = 32;
57  static const int ALIAS_PROBLEM = 33;
58  static const int INVALID_DN_SYNTAX = 34;
59 
60  static const int ALIAS_DEREFERENCING_PROBLEM = 36;
61 
62  static const int INAPPROPRIATE_AUTENTICATION = 48;
63  static const int INVALID_CREDENTIALS = 49;
64  static const int INSUFFICIENT_ACCESS = 50;
65  static const int BUSY = 51;
66  static const int UNAVAILABLE = 52;
67  static const int UNWILLING_TO_PERFORM = 53;
68  static const int LOOP_DETECT = 54;
69 
70  static const int NAMING_VIOLATION = 64;
71  static const int OBJECT_CLASS_VIOLATION = 65;
72  static const int NOT_ALLOWED_ON_NONLEAF = 66;
73  static const int NOT_ALLOWED_ON_RDN = 67;
74  static const int ENTRY_ALREADY_EXISTS = 68;
75  static const int OBJECT_CLASS_MODS_PROHIBITED = 69;
76 
77  static const int AFFECTS_MULTIPLE_DSAS = 71;
78 
79  // some Errorcodes defined in the LDAP C API DRAFT
80  static const int OTHER = 80;
81  static const int SERVER_DOWN = 81;
82  static const int LOCAL_ERROR = 82;
83  static const int ENCODING_ERROR = 83;
84  static const int DECODING_ERROR = 84;
85  static const int TIMEOUT = 85;
86  static const int AUTH_UNKNOWN = 86;
87  static const int FILTER_ERROR = 87;
88  static const int USER_CANCELLED = 88;
89  static const int PARAM_ERROR = 89;
90  static const int NO_MEMORY = 90;
91  static const int CONNECT_ERROR = 91;
92  static const int NOT_SUPPORTED = 92;
93  static const int CONTROL_NOT_FOUND = 93;
94  static const int NO_RESULTS_RETURNED = 94;
95  static const int MORE_RESULTS_TO_RETURN = 95;
96  static const int CLIENT_LOOP = 96;
97  static const int REFERRAL_LIMIT_EXCEEDED = 97;
98 
106  LDAPResult(const LDAPRequest *req, LDAPMessage *msg);
107  LDAPResult(int type, int resultCode, const std::string &msg);
108 
112  virtual ~LDAPResult();
113 
118  int getResultCode() const;
119 
125  std::string resToString() const;
126 
132  const std::string& getErrMsg() const;
133 
141  const std::string& getMatchedDN() const;
142 
147  const LDAPUrlList& getReferralUrls() const;
148 
149  private :
150  int m_resCode;
151  std::string m_matchedDN;
152  std::string m_errMsg;
153  LDAPUrlList m_referrals;
154 
159  friend std::ostream& operator<<(std::ostream &s,LDAPResult &l);
160 };
161 #endif //LDAP_RESULT_H
162 
static const int FILTER_ERROR
Definition: LDAPResult.h:87
friend std::ostream & operator<<(std::ostream &s, LDAPResult &l)
This method can be used to dump the data of a LDAPResult-Object.
static const int UNWILLING_TO_PERFORM
Definition: LDAPResult.h:67
static const int NO_SUCH_ATTRIBUTE
Definition: LDAPResult.h:49
static const int CLIENT_LOOP
Definition: LDAPResult.h:96
static const int OBJECT_CLASS_VIOLATION
Definition: LDAPResult.h:71
static const int AUTH_METHOD_NOT_SUPPORTED
Definition: LDAPResult.h:40
static const int BUSY
Definition: LDAPResult.h:65
virtual ~LDAPResult()
The destructor.
Definition: LDAPResult.cpp:62
static const int INVALID_CREDENTIALS
Definition: LDAPResult.h:63
static const int REFERRAL_LIMIT_EXCEEDED
Definition: LDAPResult.h:97
static const int ATTRIBUTE_OR_VALUE_EXISTS
Definition: LDAPResult.h:53
static const int CONTROL_NOT_FOUND
Definition: LDAPResult.h:93
const std::string & getMatchedDN() const
For messages with a result code of: NO_SUCH_OBJECT, ALIAS_PROBLEM, ALIAS_DEREFERENCING_PROBLEM or INV...
Definition: LDAPResult.cpp:81
const std::string & getErrMsg() const
In some case of error the server may return addional error messages.
Definition: LDAPResult.cpp:76
static const int STRONG_AUTH_REQUIRED
Definition: LDAPResult.h:41
static const int UNDEFINED_ATTRIBUTE_TYP
Definition: LDAPResult.h:50
static const int NO_SUCH_OBJECT
Definition: LDAPResult.h:56
This class represents any type of LDAP- Message returned from the server.
Definition: LDAPMessage.h:23
static const int NOT_ALLOWED_ON_NONLEAF
Definition: LDAPResult.h:72
For internal use only.
Definition: LDAPRequest.h:25
static const int PROTOCOL_ERROR
Definition: LDAPResult.h:35
static const int LOOP_DETECT
Definition: LDAPResult.h:68
static const int ENTRY_ALREADY_EXISTS
Definition: LDAPResult.h:74
static const int DECODING_ERROR
Definition: LDAPResult.h:84
This class represents an asynchronous connection to an LDAP-Server.
Definition: LDAPAsynConnection.h:45
static const int NAMING_VIOLATION
Definition: LDAPResult.h:70
This container class is used to store multiple LDAPUrl-objects.
Definition: LDAPUrlList.h:16
static const int ALIAS_DEREFERENCING_PROBLEM
Definition: LDAPResult.h:60
static const int LOCAL_ERROR
Definition: LDAPResult.h:82
static const int NOT_SUPPORTED
Definition: LDAPResult.h:92
static const int REFERRAL
Definition: LDAPResult.h:43
static const int AUTH_UNKNOWN
Definition: LDAPResult.h:86
static const int COMPARE_FALSE
Definition: LDAPResult.h:38
static const int OBJECT_CLASS_MODS_PROHIBITED
Definition: LDAPResult.h:75
static const int INVALID_ATTRIBUTE_SYNTAX
Definition: LDAPResult.h:54
static const int SASL_BIND_IN_PROGRESS
Definition: LDAPResult.h:47
static const int TIME_LIMIT_EXCEEDED
Definition: LDAPResult.h:36
static const int CONNECT_ERROR
Definition: LDAPResult.h:91
static const int OTHER
Definition: LDAPResult.h:80
LDAPResult(const LDAPRequest *req, LDAPMessage *msg)
This constructor is called by the LDAPMsg::create method in order to parse a LDAPResult-Message.
Definition: LDAPResult.cpp:18
static const int INSUFFICIENT_ACCESS
Definition: LDAPResult.h:64
static const int CONFIDENTIALITY_REQUIRED
Definition: LDAPResult.h:46
static const int SIZE_LIMIT_EXCEEDED
Definition: LDAPResult.h:37
static const int ENCODING_ERROR
Definition: LDAPResult.h:83
std::string resToString() const
This method transforms the result code to a human-readable result message.
Definition: LDAPResult.cpp:71
static const int UNAVAILABLE
Definition: LDAPResult.h:66
static const int OPERATIONS_ERROR
Definition: LDAPResult.h:34
static const int INAPPROPRIATE_AUTENTICATION
Definition: LDAPResult.h:62
static const int NO_MEMORY
Definition: LDAPResult.h:90
static const int CONSTRAINT_VIOLATION
Definition: LDAPResult.h:52
static const int INAPPROPRIATE_MATCHING
Definition: LDAPResult.h:51
static const int AFFECTS_MULTIPLE_DSAS
Definition: LDAPResult.h:77
static const int USER_CANCELLED
Definition: LDAPResult.h:88
static const int SERVER_DOWN
Definition: LDAPResult.h:81
static const int NOT_ALLOWED_ON_RDN
Definition: LDAPResult.h:73
static const int MORE_RESULTS_TO_RETURN
Definition: LDAPResult.h:95
static const int COMPARE_TRUE
Definition: LDAPResult.h:39
int getResultCode() const
Definition: LDAPResult.cpp:66
static const int PARAM_ERROR
Definition: LDAPResult.h:89
static const int INVALID_DN_SYNTAX
Definition: LDAPResult.h:58
static const int SUCCESS
Definition: LDAPResult.h:33
static const int TIMEOUT
Definition: LDAPResult.h:85
static const int ALIAS_PROBLEM
Definition: LDAPResult.h:57
static const int UNAVAILABLE_CRITICAL_EXTENSION
Definition: LDAPResult.h:45
static const int ADMIN_LIMIT_EXCEEDED
Definition: LDAPResult.h:44
This class is for representing LDAP-Result-Messages.
Definition: LDAPResult.h:30
const LDAPUrlList & getReferralUrls() const
Definition: LDAPResult.cpp:86
static const int NO_RESULTS_RETURNED
Definition: LDAPResult.h:94