]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cloaking.cpp
Auto loading of commands as shared objects via dlsym (very lightweight interface...
[user/henk/code/inspircd.git] / src / modules / m_cloaking.cpp
index 92fac501e98519019e8083e12644e5911f22014c..f26e16e0e2edb7cb25a204ef0cba60f88d08c138 100644 (file)
@@ -43,7 +43,7 @@
 
 /* $ModDesc: Provides masking of user hostnames */
 
-extern InspIRCd* ServerInstance;
+
 
 /* The four core functions - F1 is optimized somewhat */
 
@@ -70,7 +70,7 @@ class xMD5Context : public classbase
 
 class CloakUser : public ModeHandler
 {
-       Server* Srv;
+       
        std::string prefix;
        word32 key1;
        word32 key2;
@@ -285,7 +285,7 @@ class CloakUser : public ModeHandler
        }
        
  public:
-       CloakUser(Server* Me) : ModeHandler('x', 0, 0, false, MODETYPE_USER, false), Srv(Me) { }
+       CloakUser(InspIRCd* Instance) : ModeHandler(Instance, 'x', 0, 0, false, MODETYPE_USER, false) { }
 
        ModeAction OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string &parameter, bool adding)
        {
@@ -348,7 +348,7 @@ class CloakUser : public ModeHandler
                                                // else, they have an ip
                                                b = std::string(ra) + "." + prefix + ".cloak";
                                        }
-                                       log(DEBUG,"cloak: allocated "+b);
+                                       ServerInstance->Log(DEBUG,"cloak: allocated "+b);
                                        dest->ChangeDisplayedHost(b.c_str());
                                }
                                
@@ -374,7 +374,7 @@ class CloakUser : public ModeHandler
        
        void DoRehash()
        {
-               ConfigReader Conf;
+               ConfigReader Conf(ServerInstance);
                key1 = key2 = key3 = key4 = 0;
                key1 = Conf.ReadInteger("cloak","key1",0,false);
                key2 = Conf.ReadInteger("cloak","key2",0,false);
@@ -398,24 +398,25 @@ class CloakUser : public ModeHandler
 class ModuleCloaking : public Module
 {
  private:
-       Server *Srv;
+       
        CloakUser* cu;
 
  public:
-       ModuleCloaking(Server* Me)
-       : Module::Module(Me), Srv(Me)
+       ModuleCloaking(InspIRCd* Me)
+               : Module::Module(Me)
        {
                /* Create new mode handler object */
-               cu = new CloakUser(Srv);
+               cu = new CloakUser(ServerInstance);
 
                /* Register it with the core */         
-               Srv->AddMode(cu, 'x');
+               ServerInstance->AddMode(cu, 'x');
 
                OnRehash("");
        }
        
        virtual ~ModuleCloaking()
        {
+               ServerInstance->Modes->DelMode(cu);
                DELETE(cu);
        }
        
@@ -423,7 +424,7 @@ class ModuleCloaking : public Module
        {
                // returns the version number of the module to be
                // listed in /MODULES
-               return Version(1,0,0,2,VF_STATIC|VF_VENDOR);
+               return Version(1,0,0,2,VF_COMMON|VF_VENDOR);
        }
 
        virtual void OnRehash(const std::string &parameter)
@@ -447,7 +448,7 @@ class ModuleCloaking : public Module
                const char* modes[2];           // only two parameters
                modes[0] = user->nick;          // first parameter is the nick
                modes[1] = "+x";                // second parameter is the mode
-               Srv->SendMode(modes,2,user);    // send these, forming the command "MODE <nick> +x"
+               ServerInstance->SendMode(modes,2,user); // send these, forming the command "MODE <nick> +x"
        }
 
 };
@@ -465,7 +466,7 @@ class ModuleCloakingFactory : public ModuleFactory
        {
        }
        
-       virtual Module * CreateModule(Server* Me)
+       virtual Module * CreateModule(InspIRCd* Me)
        {
                return new ModuleCloaking(Me);
        }