]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_lockserv.cpp
Prevent setting mode -H if already unset, bug #74
[user/henk/code/inspircd.git] / src / modules / m_lockserv.cpp
index fa5fc3a3f72233551991e2fe81ae499d9ba5b0bd..7f1ae0bd5f51c1ef3c6d54b13e7ce5396ce2def0 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2010 InspIRCd Development Team
  * See: http://wiki.inspircd.org/Credits
  *
  * This program is free but copyrighted software; see
@@ -68,15 +68,10 @@ private:
        CommandLockserv lockcommand;
        CommandUnlockserv unlockcommand;
 
-       virtual void ResetLocked()
-       {
-               locked = false;
-       }
-
 public:
        ModuleLockserv() : lockcommand(this, locked), unlockcommand(this, locked)
        {
-               ResetLocked();
+               locked = false;
                ServerInstance->AddCommand(&lockcommand);
                ServerInstance->AddCommand(&unlockcommand);
                Implementation eventlist[] = { I_OnUserRegister, I_OnRehash, I_OnCheckReady };
@@ -90,10 +85,11 @@ public:
 
        virtual void OnRehash(User* user)
        {
-               ResetLocked();
+               // Emergency way to unlock
+               if (!user) locked = false;
        }
 
-       virtual ModResult OnUserRegister(User* user)
+       virtual ModResult OnUserRegister(LocalUser* user)
        {
                if (locked)
                {
@@ -103,14 +99,14 @@ public:
                return MOD_RES_PASSTHRU;
        }
 
-       virtual ModResult OnCheckReady(User* user)
+       virtual ModResult OnCheckReady(LocalUser* user)
        {
                return locked ? MOD_RES_DENY : MOD_RES_PASSTHRU;
        }
 
        virtual Version GetVersion()
        {
-               return Version("Allows locking of the server to stop all incoming connections till unlocked again", VF_VENDOR, API_VERSION);
+               return Version("Allows locking of the server to stop all incoming connections until unlocked again", VF_VENDOR);
        }
 };