oid = string ();
desc = string ();
+ equality = string ();
+ syntax = string ();
names = StringList ();
single = false;
}
oid = at.oid;
desc = at.desc;
+ equality = at.equality;
+ syntax = at.syntax;
names = at.names;
single = at.single;
}
if (a) {
this->setNames (a->at_names);
this->setDesc (a->at_desc);
+ this->setEquality (a->at_equality_oid);
+ this->setSyntax (a->at_syntax_oid);
this->setOid (a->at_oid);
this->setSingle (a->at_single_value);
}
desc = at_desc;
}
+void LDAPAttrType::setEquality (char *at_equality_oid) {
+ equality = string ();
+ if (at_equality_oid) {
+ equality = at_equality_oid;
+ }
+}
+
+void LDAPAttrType::setSyntax (char *at_syntax_oid) {
+ syntax = string ();
+ if (at_syntax_oid) {
+ syntax = at_syntax_oid;
+ }
+}
+
void LDAPAttrType::setOid (char *at_oid) {
oid = string ();
if (at_oid)
return desc;
}
+string LDAPAttrType::getEquality () {
+ return equality;
+}
+
+string LDAPAttrType::getSyntax () {
+ return syntax;
+}
+
StringList LDAPAttrType::getNames () {
return names;
}
class LDAPAttrType{
private :
StringList names;
- string desc, oid;
+ string desc, oid, equality, syntax;
bool single;
public :
*/
string getOid ();
+ /**
+ * Returns equality matching rule
+ */
+ string getEquality ();
+
+ /**
+ * Returns attribute syntax definition
+ */
+ string getSyntax ();
+
/**
* Returns attribute name (first one if there are more of them)
*/
StringList getNames();
/**
- * Returns true if attribute type hllows only single value
+ * Returns true if attribute type allows only single value
*/
bool isSingle();
void setNames (char **at_names);
void setDesc (char *at_desc);
+ void setEquality (char *at_equality_oid);
+ void setSyntax (char *at_syntax_oid);
void setOid (char *at_oid);
void setSingle (int at_single_value);
}
break;
default :
+ string srvMsg = res->getErrMsg();
delete res;
delete msg;
- throw LDAPException(resCode);
+ throw LDAPException(resCode,srvMsg);
}
}
using namespace std;
LDAPException::LDAPException(int res_code, const string& err_string){
- m_res_code=res_code;
- m_res_string=string(ldap_err2string(res_code));
+ m_res_code=res_code;
+ m_res_string=string(ldap_err2string(res_code));
m_err_string=err_string;
}
LDAPException::LDAPException(const LDAPAsynConnection *lc){
- m_err_string=string();
- m_res_string=string();
- LDAP *l = lc->getSessionHandle();
- ldap_get_option(l,LDAP_OPT_ERROR_NUMBER,&m_res_code);
- m_res_string=string(ldap_err2string(m_res_code));
+ m_err_string=string();
+ m_res_string=string();
+ LDAP *l = lc->getSessionHandle();
+ ldap_get_option(l,LDAP_OPT_ERROR_NUMBER,&m_res_code);
+ m_res_string=string(ldap_err2string(m_res_code));
char* err_string;
- ldap_get_option(l,LDAP_OPT_ERROR_STRING,&err_string);
+ ldap_get_option(l,LDAP_OPT_ERROR_STRING,&err_string);
m_err_string=string(err_string);
}
}
int LDAPException::getResultCode() const{
- return m_res_code;
+ return m_res_code;
}
const string& LDAPException::getResultMsg() const{
- return m_res_string;
+ return m_res_string;
}
const string& LDAPException::getServerMsg() const{
#include "StringList.h"
#include "LDAPSchema.h"
+#include <ctype.h>
+
using namespace std;
LDAPSchema::LDAPSchema(){
StringList names = oc.getNames();
// there could be more names for one object...
for (j = names.begin(); j != names.end(); j++) {
- object_classes [(*j)] = LDAPObjClass (oc);
+ string lc_name = *j;
+ string::iterator k;
+ for ( k = lc_name.begin(); k != lc_name.end(); k++ ) {
+ (*k) = tolower(*k);
+ }
+ object_classes [lc_name] = LDAPObjClass (oc);
}
}
}
StringList names = at.getNames();
// there could be more names for one object...
for (j = names.begin(); j != names.end(); j++) {
- attr_types [(*j)] = LDAPAttrType (at);
+ string lc_name = *j;
+ string::iterator k;
+ for ( k = lc_name.begin(); k != lc_name.end(); k++ ) {
+ (*k) = tolower(*k);
+ }
+ attr_types [lc_name] = LDAPAttrType (at);
}
}
}
LDAPObjClass LDAPSchema::getObjectClassByName (string name) {
-
- return object_classes [name];
+ string lc_name = name;
+ string::iterator k;
+ for ( k = lc_name.begin(); k != lc_name.end(); k++ ) {
+ (*k) = tolower(*k);
+ }
+ return object_classes [lc_name];
}
LDAPAttrType LDAPSchema::getAttributeTypeByName (string name) {
+ string lc_name = name;
+ string::iterator k;
+ for ( k = lc_name.begin(); k != lc_name.end(); k++ ) {
+ (*k) = tolower(*k);
+ }
- return attr_types [name];
+ return attr_types [lc_name];
}