]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cap.cpp
Convert WriteNumeric() calls to pass the parameters of the numeric as method parameters
[user/henk/code/inspircd.git] / src / modules / m_cap.cpp
index c01377f46702dd1a4d7850d659f92497849cfe4e..e6e01570d83153a0aff3410041f9cca2a1a82260 100644 (file)
@@ -170,6 +170,7 @@ class Cap::ManagerImpl : public Cap::Manager, public ReloadModule::EventListener
                cap->bit = AllocateBit();
                cap->extitem = &capext;
                caps.insert(std::make_pair(cap->GetName(), cap));
+               ServerInstance->Modules.AddReferent("cap/" + cap->GetName(), cap);
 
                FOREACH_MOD_CUSTOM(evprov, Cap::EventListener, OnCapAddDel, (cap, true));
        }
@@ -193,6 +194,7 @@ class Cap::ManagerImpl : public Cap::Manager, public ReloadModule::EventListener
                        cap->set(user, false);
                }
 
+               ServerInstance->Modules.DelReferent(cap);
                cap->Unregister();
                caps.erase(cap->GetName());
        }
@@ -339,7 +341,7 @@ class CommandCap : public SplitCommand
 
        static void DisplayResult(LocalUser* user, std::string& result)
        {
-               if (result.size() > 5)
+               if (*result.rbegin() == ' ')
                        result.erase(result.end()-1);
                user->WriteCommand("CAP", result);
        }
@@ -396,7 +398,7 @@ class CommandCap : public SplitCommand
                }
                else
                {
-                       user->WriteNumeric(ERR_INVALIDCAPSUBCOMMAND, "%s :Invalid CAP subcommand", subcommand.c_str());
+                       user->WriteNumeric(ERR_INVALIDCAPSUBCOMMAND, subcommand, "Invalid CAP subcommand");
                        return CMD_FAILURE;
                }