]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_hostchange.cpp
Merge insp20
[user/henk/code/inspircd.git] / src / modules / m_hostchange.cpp
index cc7c575080c56a75b7864036ce40681c2c3099f8..6d5896ef51bd73ada8bedd4d875224030cc6a613 100644 (file)
@@ -21,8 +21,6 @@
 
 #include "inspircd.h"
 
-/* $ModDesc: Provides masking of user hostnames in a different way to m_cloaking */
-
 /** Holds information on a host set by m_hostchange
  */
 class Host
@@ -47,33 +45,18 @@ typedef std::vector<std::pair<std::string, Host> > hostchanges_t;
 
 class ModuleHostChange : public Module
 {
- private:
        hostchanges_t hostchanges;
        std::string MySuffix;
        std::string MyPrefix;
        std::string MySeparator;
 
  public:
-       ModuleHostChange()
-                       {
-               OnRehash(NULL);
-               Implementation eventlist[] = { I_OnRehash, I_OnUserConnect };
-               ServerInstance->Modules->Attach(eventlist, this, 2);
-       }
-
-       void Prioritize()
-       {
-               Module* cloak = ServerInstance->Modules->Find("m_cloaking.so");
-               ServerInstance->Modules->SetPriority(this, I_OnUserConnect, PRIORITY_AFTER, &cloak);
-       }
-
-
-       virtual void OnRehash(User* user)
+       void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
        {
-               ConfigReader Conf;
-               MySuffix = Conf.ReadValue("host","suffix",0);
-               MyPrefix = Conf.ReadValue("host","prefix","",0);
-               MySeparator = Conf.ReadValue("host","separator",".",0);
+               ConfigTag* host = ServerInstance->Config->ConfValue("host");
+               MySuffix = host->getString("suffix");
+               MyPrefix = host->getString("prefix");
+               MySeparator = host->getString("separator", ".");
                hostchanges.clear();
 
                std::set<std::string> dupecheck;
@@ -91,7 +74,7 @@ class ModuleHostChange : public Module
                        if (!strcasecmp(action.c_str(), "set"))
                        {
                                act = Host::HCA_SET;
-                               newhost = tag->getString("newhost");
+                               newhost = tag->getString("value");
                        }
                        else if (!strcasecmp(action.c_str(), "suffix"))
                                act = Host::HCA_SUFFIX;
@@ -100,18 +83,18 @@ class ModuleHostChange : public Module
                        else
                                throw ModuleException("Invalid hostchange action: " + action);
 
-                       hostchanges.push_back(std::make_pair(mask, Host(act, tag->getString("ports"), newhost)));
+                       hostchanges.push_back(std::make_pair(mask, Host(act, newhost, tag->getString("ports"))));
                }
        }
 
-       virtual Version GetVersion()
+       Version GetVersion() CXX11_OVERRIDE
        {
                // returns the version number of the module to be
                // listed in /MODULES
                return Version("Provides masking of user hostnames in a different way to m_cloaking", VF_VENDOR);
        }
 
-       virtual void OnUserConnect(LocalUser* user)
+       void OnUserConnect(LocalUser* user) CXX11_OVERRIDE
        {
                for (hostchanges_t::iterator i = hostchanges.begin(); i != hostchanges.end(); i++)
                {
@@ -167,9 +150,9 @@ class ModuleHostChange : public Module
                                }
                                if (!newhost.empty())
                                {
-                                       user->WriteServ("NOTICE "+std::string(user->nick)+" :Setting your virtual host: " + newhost);
-                                       if (!user->ChangeDisplayedHost(newhost.c_str()))
-                                               user->WriteServ("NOTICE "+std::string(user->nick)+" :Could not set your virtual host: " + newhost);
+                                       user->WriteNotice("Setting your virtual host: " + newhost);
+                                       if (!user->ChangeDisplayedHost(newhost))
+                                               user->WriteNotice("Could not set your virtual host: " + newhost);
                                        return;
                                }
                        }