]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_sslinfo.cpp
WebSocket: use one WebSocket message per IRC message.
[user/henk/code/inspircd.git] / src / modules / m_sslinfo.cpp
index 746ade2acd51afd0f492304a2df5122c8160bd71..25415095cfdb0c13f4e243fa4104037a09ea8b7d 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "inspircd.h"
 #include "modules/ssl.h"
+#include "modules/whois.h"
 
 enum
 {
@@ -78,7 +79,7 @@ class SSLCertExt : public ExtensionItem {
                }
        }
 
-       void free(void* item) CXX11_OVERRIDE
+       void free(Extensible* container, void* item) CXX11_OVERRIDE
        {
                ssl_cert* old = static_cast<ssl_cert*>(item);
                if (old && old->refcount_dec())
@@ -98,7 +99,7 @@ class CommandSSLInfo : public Command
                this->syntax = "<nick>";
        }
 
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE
        {
                User* target = ServerInstance->FindNickOnly(parameters[0]);
 
@@ -146,6 +147,11 @@ class UserCertificateAPIImpl : public UserCertificateAPIBase
        {
                return ext.get(user);
        }
+
+       void SetCertificate(User* user, ssl_cert* cert) CXX11_OVERRIDE
+       {
+               ext.set(user, cert);
+       }
 };
 
 class ModuleSSLInfo : public Module, public Whois::EventListener
@@ -178,7 +184,7 @@ class ModuleSSLInfo : public Module, public Whois::EventListener
                }
        }
 
-       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE
+       ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated) CXX11_OVERRIDE
        {
                if ((command == "OPER") && (validated))
                {
@@ -190,7 +196,7 @@ class ModuleSSLInfo : public Module, public Whois::EventListener
 
                                if (ifo->oper_block->getBool("sslonly") && !cert)
                                {
-                                       user->WriteNumeric(491, "This oper login requires an SSL connection.");
+                                       user->WriteNumeric(ERR_NOOPERHOST, "This oper login requires an SSL connection.");
                                        user->CommandFloodPenalty += 10000;
                                        return MOD_RES_DENY;
                                }
@@ -198,7 +204,7 @@ class ModuleSSLInfo : public Module, public Whois::EventListener
                                std::string fingerprint;
                                if (ifo->oper_block->readString("fingerprint", fingerprint) && (!cert || cert->GetFingerprint() != fingerprint))
                                {
-                                       user->WriteNumeric(491, "This oper login requires a matching SSL certificate fingerprint.");
+                                       user->WriteNumeric(ERR_NOOPERHOST, "This oper login requires a matching SSL certificate fingerprint.");
                                        user->CommandFloodPenalty += 10000;
                                        return MOD_RES_DENY;
                                }