+
+ User* dest = ServerInstance->FindNick(parameters[0]);
+
+ // Allow services to change the host of unregistered users
+ if ((!dest) || ((dest->registered != REG_ALL) && (!ServerInstance->ULine(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
+ ServerInstance->SNO->WriteGlobalSno('a', user->nick+" used CHGHOST to make the displayed host of "+dest->nick+" become "+dest->dhost);
+ }
+ }
+
+ return CMD_SUCCESS;
+ }
+
+ RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)