X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fextra%2Fm_ldapoper.cpp;h=6bd834dc80541f13c3b6f12233628236f8f2020c;hb=44f42a13de52c8025942ddab42f51feb36821782;hp=46b6cbcb25a4b396116c0f6b5c251904137f064b;hpb=86775e2e98f55b3b88befe2daff0ca23f02f3155;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/extra/m_ldapoper.cpp b/src/modules/extra/m_ldapoper.cpp index 46b6cbcb2..6bd834dc8 100644 --- a/src/modules/extra/m_ldapoper.cpp +++ b/src/modules/extra/m_ldapoper.cpp @@ -1,26 +1,25 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * Copyright (C) 2009 Robin Burchell + * Copyright (C) 2008 Pippijn van Steenhoven + * Copyright (C) 2008 Craig Edwards + * Copyright (C) 2007 Carsten Valdemar Munk * - * This program is free but copyrighted software; see - * the file COPYING for details. + * 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 + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. * - * Taken from the UnrealIRCd 4.0 SVN version, based on - * InspIRCd 1.1.x. - * - * UnrealIRCd 4.0 (C) 2007 Carsten Valdemar Munk - * This program is free but copyrighted software; see - * the file COPYING for details. - * - * --------------------------------------------------- - * Heavily based on SQLauth + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + #include "inspircd.h" #include "users.h" #include "channels.h" @@ -28,6 +27,11 @@ #include +#ifdef WINDOWS +# pragma comment(lib, "ldap.lib") +# pragma comment(lib, "lber.lib") +#endif + /* $ModDesc: Allow/Deny connections based upon answer from LDAP server */ /* $LinkerFlags: -lldap */ @@ -41,9 +45,8 @@ class ModuleLDAPAuth : public Module LDAP *conn; public: - ModuleLDAPAuth(InspIRCd* Me) - : Module(Me) - { + ModuleLDAPAuth() + { conn = NULL; Implementation eventlist[] = { I_OnRehash, I_OnPassCompare }; ServerInstance->Modules->Attach(eventlist, this, 2); @@ -58,7 +61,7 @@ public: virtual void OnRehash(User* user) { - ConfigReader Conf(ServerInstance); + ConfigReader Conf; base = Conf.ReadValue("ldapoper", "baserdn", 0); ldapserver = Conf.ReadValue("ldapoper", "server", 0); @@ -99,20 +102,19 @@ public: virtual ModResult OnPassCompare(Extensible* ex, const std::string &data, const std::string &input, const std::string &hashtype) { - User* user = dynamic_cast(ex); if (hashtype == "ldap") { - if (LookupOper(user, data, input)) - { + if (LookupOper(data, input)) /* This is an ldap oper and has been found, claim the OPER command */ + return MOD_RES_ALLOW; + else return MOD_RES_DENY; - } } /* We don't know this oper! */ return MOD_RES_PASSTHRU; } - bool LookupOper(User* user, const std::string &what, const std::string &opassword) + bool LookupOper(const std::string &what, const std::string &opassword) { if (conn == NULL) if (!Connect()) @@ -179,7 +181,7 @@ public: virtual Version GetVersion() { - return Version("$Id$", VF_VENDOR, API_VERSION); + return Version("Allow/Deny connections based upon answer from LDAP server", VF_VENDOR); } };