std::string MySeparator;
public:
- ModuleHostChange()
- {
+ void init()
+ {
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);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
-
virtual void OnRehash(User* user)
{
- 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"))));
}
}
{
// first take their nick and strip out non-dns, leaving just [A-Z0-9\-]
std::string complete;
- std::string old = user->nick;
- for (unsigned int j = 0; j < old.length(); j++)
+ for (std::string::const_iterator j = user->nick.begin(); j != user->nick.end(); ++j)
{
- if (((old[j] >= 'A') && (old[j] <= 'Z')) ||
- ((old[j] >= 'a') && (old[j] <= 'z')) ||
- ((old[j] >= '0') && (old[j] <= '9')) ||
- (old[j] == '-'))
+ if (((*j >= 'A') && (*j <= 'Z')) ||
+ ((*j >= 'a') && (*j <= 'z')) ||
+ ((*j >= '0') && (*j <= '9')) ||
+ (*j == '-'))
{
- complete = complete + old[j];
+ complete = complete + *j;
}
}
if (complete.empty())
}
if (!newhost.empty())
{
- user->WriteServ("NOTICE "+std::string(user->nick)+" :Setting your virtual host: " + newhost);
+ user->WriteServ("NOTICE "+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->WriteServ("NOTICE "+user->nick+" :Could not set your virtual host: " + newhost);
return;
}
}