- user->WriteServ("NOTICE "+std::string(user->nick)+" :*** Invalid characters in hostname");
- return;
- }
+ user->WriteServ("NOTICE "+std::string(user->nick)+" :*** CHGHOST: Invalid characters in hostname");
+ return CMD_FAILURE;
}
}
}
}
- if ((parameters[1] - x) > 63)
+
+ if ((parameters[1].c_str() - x) > 63)
{
{
- user->WriteServ("NOTICE %s :*** CHGHOST: Host too long",user->nick);
- return;
+ user->WriteServ("NOTICE %s :*** CHGHOST: Host too long", user->nick.c_str());
+ return CMD_FAILURE;
}
}
- userrec* dest = Srv->FindNick(std::string(parameters[0]));
- if (dest)
+ User* dest = ServerInstance->FindNick(parameters[0]);
+
+ if (!dest)
{
{
- if ((dest->ChangeDisplayedHost(parameters[1])) && (!Srv->IsUlined(user->server)))
+ user->WriteNumeric(ERR_NOSUCHNICK, "%s %s :No such nick/channel", user->nick.c_str(), parameters[0].c_str());
+ return CMD_FAILURE;
+ }
+
+ if (IS_LOCAL(dest))
+ {
+ if ((dest->ChangeDisplayedHost(parameters[1].c_str())) && (!ServerInstance->ULine(user->server)))
{
// fix by brain - ulines set hosts silently
{
// fix by brain - ulines set hosts silently
- Srv->SendOpers(std::string(user->nick)+" used CHGHOST to make the displayed host of "+std::string(dest->nick)+" become "+std::string(parameters[1]));
+ ServerInstance->SNO->WriteGlobalSno('a', std::string(user->nick)+" used CHGHOST to make the displayed host of "+dest->nick+" become "+dest->dhost);