]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_ssl_oper_cert.cpp
Change the SQLutils and SQL providers to also use interfaces for proper unload order...
[user/henk/code/inspircd.git] / src / modules / extra / m_ssl_oper_cert.cpp
index 2d626e77df0f758cfe25b1f9cfb292b1da36e807..0c13d5e6dedfe84d09f7a254661a2ab9ea77e8c1 100644 (file)
@@ -2,12 +2,9 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- *                       E-mail:
- *                <brain@chatspike.net>
- *               <Craig@chatspike.net>
- *     
- * Written by Craig Edwards, Craig McLure, and others.
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
  *
@@ -15,8 +12,7 @@
  */
 
 /* $ModDesc: Allows for MD5 encrypted oper passwords */
-
-using namespace std;
+/* $ModDep: transport.h */
 
 #include <stdio.h>
 #include "inspircd_config.h"
@@ -24,9 +20,11 @@ using namespace std;
 #include "channels.h"
 #include "modules.h"
 #include "inspircd.h"
-#include "ssl_cert.h"
+#include "transport.h"
 #include "wildcard.h"
 
+/** Handle /FINGERPRINT
+ */
 class cmd_fingerprint : public command_t
 {
  public:
@@ -111,7 +109,7 @@ class ModuleOperSSLCert : public Module
        }
 
 
-       virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated)
+       virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated, const std::string &original_line)
        {
                irc::string cmd = command.c_str();
                
@@ -140,10 +138,10 @@ class ModuleOperSSLCert : public Module
                                
                                if (*FingerPrint)
                                {
-                                       if ((!strcmp(LoginName,parameters[0])) && (!ServerInstance->OperPassCompare(Password,parameters[1])) && (OneOfMatches(TheHost,TheIP,HostName)))
+                                       if ((!strcmp(LoginName,parameters[0])) && (!ServerInstance->OperPassCompare(Password,parameters[1], i)) && (OneOfMatches(TheHost,TheIP,HostName)))
                                        {
                                                /* This oper would match */
-                                               if (cert->GetFingerprint() != FingerPrint)
+                                               if ((!cert) || (cert->GetFingerprint() != FingerPrint))
                                                {
                                                        user->WriteServ("491 %s :This oper login name requires a matching key fingerprint.",user->nick);
                                                        ServerInstance->SNO->WriteToSnoMask('o',"'%s' cannot oper, does not match fingerprint", user->nick);
@@ -159,7 +157,7 @@ class ModuleOperSSLCert : public Module
 
        virtual Version GetVersion()
        {
-               return Version(1,1,0,0,VF_VENDOR);
+               return Version(1,1,0,0,VF_VENDOR,API_VERSION);
        }
 };