#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
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);
- }
-
- 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;
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;
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++)
{
}
if (!newhost.empty())
{
- user->WriteServ("NOTICE "+user->nick+" :Setting your virtual host: " + newhost);
- if (!user->ChangeDisplayedHost(newhost.c_str()))
- user->WriteServ("NOTICE "+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;
}
}