/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2013-2015 Adam <Adam@anope.org>
- * Copyright (C) 2003-2015 Anope Team <team@anope.org>
+ * Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
+ * Copyright (C) 2019 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2016-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2014, 2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2013-2016 Adam <Adam@anope.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
}
virtual int run() = 0;
+ virtual std::string info() = 0;
};
class LDAPBind : public LDAPRequest
}
int run() CXX11_OVERRIDE;
+ std::string info() CXX11_OVERRIDE;
};
class LDAPSearch : public LDAPRequest
}
int run() CXX11_OVERRIDE;
+ std::string info() CXX11_OVERRIDE;
};
class LDAPAdd : public LDAPRequest
}
int run() CXX11_OVERRIDE;
+ std::string info() CXX11_OVERRIDE;
};
class LDAPDel : public LDAPRequest
}
int run() CXX11_OVERRIDE;
+ std::string info() CXX11_OVERRIDE;
};
class LDAPModify : public LDAPRequest
}
int run() CXX11_OVERRIDE;
+ std::string info() CXX11_OVERRIDE;
};
class LDAPCompare : public LDAPRequest
}
int run() CXX11_OVERRIDE;
+ std::string info() CXX11_OVERRIDE;
};
class LDAPService : public LDAPProvider, public SocketThread
if (res != LDAP_SUCCESS)
{
- ldap_result->error = ldap_err2string(res);
+ ldap_result->error = InspIRCd::Format("%s (%s)", ldap_err2string(res), req->info().c_str());
return;
}
Version GetVersion() CXX11_OVERRIDE
{
- return Version("Provides LDAP support", VF_VENDOR);
+ return Version("Provides the ability for LDAP modules to query a LDAP directory.", VF_VENDOR);
}
};
return i;
}
+std::string LDAPBind::info()
+{
+ return "bind dn=" + who;
+}
+
int LDAPSearch::run()
{
return ldap_search_ext_s(service->GetConnection(), base.c_str(), searchscope, filter.c_str(), NULL, 0, NULL, NULL, &tv, 0, &message);
}
+std::string LDAPSearch::info()
+{
+ return "search base=" + base + " filter=" + filter;
+}
+
int LDAPAdd::run()
{
LDAPMod** mods = LDAPService::BuildMods(attributes);
return i;
}
+std::string LDAPAdd::info()
+{
+ return "add dn=" + dn;
+}
+
int LDAPDel::run()
{
return ldap_delete_ext_s(service->GetConnection(), dn.c_str(), NULL, NULL);
}
+std::string LDAPDel::info()
+{
+ return "del dn=" + dn;
+}
+
int LDAPModify::run()
{
LDAPMod** mods = LDAPService::BuildMods(attributes);
return i;
}
+std::string LDAPModify::info()
+{
+ return "modify base=" + base;
+}
+
int LDAPCompare::run()
{
berval cred;
free(cred.bv_val);
return ret;
+}
+std::string LDAPCompare::info()
+{
+ return "compare dn=" + dn + " attr=" + attr;
}
MODULE_INIT(ModuleLDAP)