]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_vhost.cpp
Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include lists
[user/henk/code/inspircd.git] / src / modules / m_vhost.cpp
index 238de02e0ea6679119bef1851e58b52b6e096aca..f0ebfe54b5372e0977056e818a20543f775804c4 100644 (file)
@@ -20,39 +20,41 @@ using namespace std;
 #include "users.h"
 #include "channels.h"
 #include "modules.h"
+#include "inspircd.h"
 
 /* $ModDesc: Provides masking of user hostnames via traditional /VHOST command */
 
-ConfigReader *Conf;
-Server* Srv;
+static ConfigReader *Conf;
+
 
 class cmd_vhost : public command_t
 {
  public:
-        cmd_vhost() : command_t("VHOST", 0, 2)
-        {
-                this->source = "m_vhost.so";
-        }
-
-        void Handle (char **parameters, int pcnt, userrec *user)
-        {
-                for (int index = 0; index < Conf->Enumerate("vhost"); index++)
-                {
-                        std::string mask = Conf->ReadValue("vhost","host",index);
-                       std::string user = Conf->ReadValue("vhost","user",index);
+ cmd_vhost (InspIRCd* Instance) : command_t(Instance,"VHOST", 0, 2)
+       {
+               this->source = "m_vhost.so";
+               syntax = "<username> <password>";
+       }
+
+       void Handle (const char** parameters, int pcnt, userrec *user)
+       {
+               for (int index = 0; index < Conf->Enumerate("vhost"); index++)
+               {
+                       std::string mask = Conf->ReadValue("vhost","host",index);
+                       std::string username = Conf->ReadValue("vhost","user",index);
                        std::string pass = Conf->ReadValue("vhost","pass",index);
-                        if ((!strcmp(parameters[0],user.c_str())) && (!strcmp(parameters[1],pass.c_str())))
-                        {
-                                if (mask != "")
-                                {
-                                        Srv->SendServ(user->fd,"NOTICE "+std::string(user->nick)+" :Setting your VHost: " + mask);
-                                        Srv->ChangeHost(user,mask);
-                                        return;
-                                }
-                        }
-                }
-               Srv->SendServ(user->fd,"NOTICE "+std::string(user->nick)+" :Invalid username or password.");
-        }
+                       if ((!strcmp(parameters[0],username.c_str())) && (!strcmp(parameters[1],pass.c_str())))
+                       {
+                               if (mask != "")
+                               {
+                                       user->WriteServ("NOTICE "+std::string(user->nick)+" :Setting your VHost: " + mask);
+                                       user->ChangeDisplayedHost(mask.c_str());
+                                       return;
+                               }
+                       }
+               }
+               user->WriteServ("NOTICE "+std::string(user->nick)+" :Invalid username or password.");
+       }
 };
 
 class ModuleVHost : public Module
@@ -62,18 +64,17 @@ class ModuleVHost : public Module
        cmd_vhost* mycommand;
         
  public:
-       ModuleVHost(Server* Me)
-               : Module::Module(Me)
+       ModuleVHost(InspIRCd* Me) : Module::Module(Me)
        {
-               Srv = Me;
-                Conf = new ConfigReader;
-                mycommand = new cmd_vhost();
-                Srv->AddCommand(mycommand);
+               
+               Conf = new ConfigReader(ServerInstance);
+               mycommand = new cmd_vhost(ServerInstance);
+               ServerInstance->AddCommand(mycommand);
        }
        
        virtual ~ModuleVHost()
        {
-               delete Conf;
+               DELETE(Conf);
        }
 
        void Implements(char* List)
@@ -81,10 +82,10 @@ class ModuleVHost : public Module
                List[I_OnRehash] = 1;
        }
 
-       virtual void OnRehash(std::string parameter)
+       virtual void OnRehash(const std::string &parameter)
        {
-               delete Conf;
-               Conf = new ConfigReader;
+               DELETE(Conf);
+               Conf = new ConfigReader(ServerInstance);
        }
        
        virtual Version GetVersion()
@@ -109,7 +110,7 @@ class ModuleVHostFactory : public ModuleFactory
        {
        }
        
-       virtual Module * CreateModule(Server* Me)
+       virtual Module * CreateModule(InspIRCd* Me)
        {
                return new ModuleVHost(Me);
        }