]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_auditorium.cpp
Fix memory leak and invalid vtable location on unload of m_sslinfo
[user/henk/code/inspircd.git] / src / modules / m_auditorium.cpp
index 19b37e245c1e82b6e122824d2b9405d9d0aa80b8..b7b60497b8bad8c9e3eaf52ab0697d6f0169e08c 100644 (file)
@@ -18,9 +18,9 @@
 class AuditoriumMode : public ModeHandler
 {
  public:
-       AuditoriumMode(InspIRCd* Instance) : ModeHandler(Instance, 'u', 0, 0, false, MODETYPE_CHANNEL, false, 0, '@') { }
+       AuditoriumMode(InspIRCd* Instance, Module* Creator) : ModeHandler(Instance, Creator, 'u', 0, 0, false, MODETYPE_CHANNEL, false, 0, '@') { }
 
-       ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding, bool)
+       ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding)
        {
                if (channel->IsModeSet('u') != adding)
                {
@@ -42,7 +42,7 @@ class ModuleAuditorium : public Module
        bool OperOverride;
  public:
        ModuleAuditorium(InspIRCd* Me)
-               : Module(Me), aum(Me)
+               : Module(Me), aum(Me, this)
        {
                if (!ServerInstance->Modes->AddMode(&aum))
                        throw ModuleException("Could not add new modes!");
@@ -113,7 +113,7 @@ class ModuleAuditorium : public Module
                }
        }
 
-       virtual void OnUserJoin(User* user, Channel* channel, bool sync, bool &silent)
+       virtual void OnUserJoin(User* user, Channel* channel, bool sync, bool &silent, bool created)
        {
                if (channel->IsModeSet('u'))
                {
@@ -159,13 +159,13 @@ class ModuleAuditorium : public Module
                }
        }
 
-       bool OnHostCycle(User* user)
+       ModResult OnHostCycle(User* user)
        {
                for (UCListIter f = user->chans.begin(); f != user->chans.end(); f++)
                        if (f->first->IsModeSet('u'))
-                               return true;
+                               return MOD_RES_DENY;
 
-               return false;
+               return MOD_RES_PASSTHRU;
        }
 
        void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message)