]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fix automated metadata decoding with ExtItem
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 13 Sep 2009 20:33:41 +0000 (20:33 +0000)
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 13 Sep 2009 20:33:41 +0000 (20:33 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11715 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_services_account.cpp
src/modules/m_spanningtree/metadata.cpp
src/modules/m_sslinfo.cpp

index ac71a12157a24a1f66ad740a3d774afd16335141..dea382452cc10ec3978fbcdc3b8bbe5462cceee6 100644 (file)
@@ -254,9 +254,9 @@ class ModuleServicesAccount : public Module
                // check if its our metadata key, and its associated with a user
                if (dest && (extname == "accountname"))
                {
-                       if (!extdata.empty())
+                       std::string *account = accountname.get(dest);
+                       if (account && !account->empty())
                        {
-                               std::string *account = accountname.get(dest);
                                trim(*account);
 
                                if (IS_LOCAL(dest))
index f012568f9db23e0dd92789258c953b45d8d982db..40a98d93b2fa2b16905baaa6f5bf6281bc4101e6 100644 (file)
@@ -28,6 +28,7 @@ bool TreeSocket::MetaData(const std::string &prefix, parameterlist &params)
        else if (params.size() < 3)
                params.push_back("");
        TreeServer* ServerSource = Utils->FindServer(prefix);
+       ExtensionItem* item = Extensible::GetItem(params[1]);
        if (ServerSource)
        {
                if (params[0] == "*")
@@ -39,6 +40,8 @@ bool TreeSocket::MetaData(const std::string &prefix, parameterlist &params)
                        Channel* c = this->ServerInstance->FindChan(params[0]);
                        if (c)
                        {
+                               if (item)
+                                       item->unserialize(FORMAT_NETWORK, c, params[2]);
                                FOREACH_MOD_I(this->ServerInstance,I_OnDecodeMetaData,OnDecodeMetaData(c,params[1],params[2]));
                        }
                }
@@ -47,6 +50,8 @@ bool TreeSocket::MetaData(const std::string &prefix, parameterlist &params)
                        User* u = this->ServerInstance->FindNick(params[0]);
                        if (u)
                        {
+                               if (item)
+                                       item->unserialize(FORMAT_NETWORK, u, params[2]);
                                FOREACH_MOD_I(this->ServerInstance,I_OnDecodeMetaData,OnDecodeMetaData(u,params[1],params[2]));
                        }
                }
index cca32d4da87d8daa92a53f4c9f3ece7d210c4874..cd636c633f0fb02d6b2493a7e3356914d68fc7e6 100644 (file)
@@ -123,20 +123,20 @@ class ModuleSSLInfo : public Module
 
                Extensible::Register(&cmd.CertExt);
 
-               Implementation eventlist[] = { I_OnSyncUser, I_OnDecodeMetaData, I_OnWhois, I_OnPreCommand };
-               ServerInstance->Modules->Attach(eventlist, this, 4);
+               Implementation eventlist[] = { I_OnWhois, I_OnPreCommand };
+               ServerInstance->Modules->Attach(eventlist, this, 2);
        }
 
-       virtual ~ModuleSSLInfo()
+       ~ModuleSSLInfo()
        {
        }
 
-       virtual Version GetVersion()
+       Version GetVersion()
        {
                return Version("SSL Certificate Utilities", VF_VENDOR);
        }
 
-       virtual void OnWhois(User* source, User* dest)
+       void OnWhois(User* source, User* dest)
        {
                if (cmd.CertExt.get(dest))
                {
@@ -158,7 +158,7 @@ class ModuleSSLInfo : public Module
                return false;
        }
 
-       virtual ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, User *user, bool validated, const std::string &original_line)
+       ModResult OnPreCommand(std::string &command, std::vector<std::string> &parameters, User *user, bool validated, const std::string &original_line)
        {
                irc::string pcmd = command.c_str();