RPL_CHANNELCREATED = 329, // ???
RPL_TOPIC = 332,
RPL_TOPICTIME = 333, // not RFC, extremely common though
+ RPL_VERSION = 351,
RPL_NAMREPLY = 353,
RPL_ENDOFNAMES = 366,
RPL_MOTDSTART = 375,
RPL_ENDOFMOTD = 376,
+ RPL_REHASHING = 382,
+ RPL_TIME = 391,
RPL_YOURDISPLAYEDHOST = 396, // from charybdis/etc, common convention
/*
* Error range of numerics.
*/
ERR_NOSUCHNICK = 401,
+ ERR_NOSUCHCHANNEL = 403, // used to indicate an invalid channel name also, so don't rely on RFC text (don't do that anyway!)
ERR_TOOMANYCHANNELS = 405,
ERR_UNKNOWNCOMMAND = 421,
ERR_NOMOTD = 422,
ERR_USERNOTINCHANNEL = 441,
ERR_NOTREGISTERED = 451,
ERR_NEEDMOREPARAMS = 461,
+ ERR_ALREADYREGISTERED = 462,
/*
* A quick side-rant about the next group of numerics..
}
}
- user->WriteNumeric(403, "%s %s :Invalid channel name",user->nick.c_str(), parameters[0].c_str());
+ user->WriteNumeric(ERR_NOSUCHCHANNEL, "%s %s :Invalid channel name",user->nick.c_str(), parameters[0].c_str());
return CMD_FAILURE;
}
// Check to make sure they havnt registered -- Fix by FCS
if (user->registered == REG_ALL)
{
- user->WriteNumeric(462, "%s :You may not reregister",user->nick.c_str());
+ user->WriteNumeric(ERR_ALREADYREGISTERED, "%s :You may not reregister",user->nick.c_str());
return CMD_FAILURE;
}
ConnectClass* a = user->GetClass();
FOREACH_MOD(I_OnRehash,OnRehash(user, ""));
// XXX write this to a remote user correctly
- user->WriteNumeric(382, "%s %s :Rehashing",user->nick.c_str(),ServerConfig::CleanFilename(ServerInstance->ConfigFileName));
+ user->WriteNumeric(RPL_REHASHING, "%s %s :Rehashing",user->nick.c_str(),ServerConfig::CleanFilename(ServerInstance->ConfigFileName));
std::string m = user->nick + " is rehashing config file " + ServerConfig::CleanFilename(ServerInstance->ConfigFileName) + " on " + ServerInstance->Config->ServerName;
ServerInstance->SNO->WriteToSnoMask('A', m);
}
else
{
- /* A rehash is already in progress! ahh shit. */
+ /*
+ * A rehash is already in progress! ahh shit.
+ * XXX, todo: we should find some way to kill runaway rehashes that are blocking, this is a major problem for unrealircd users
+ */
if (IS_LOCAL(user))
user->WriteServ("NOTICE %s :*** Could not rehash: A rehash is already in progress.", user->nick.c_str());
else
CmdResult CommandServer::Handle (const std::vector<std::string>&, User *user)
{
- user->WriteNumeric(666, "%s :You cannot identify as a server, you are a USER. IRC Operators informed.",user->nick.c_str());
- ServerInstance->SNO->WriteToSnoMask('A', "WARNING: %s attempted to issue a SERVER command and is registered as a user!", user->nick.c_str());
+ user->WriteNumeric(ERR_ALREADYREGISTERED, "%s :You are already registered. (Perhaps your IRC client does not have a /SERVER command).",user->nick.c_str());
return CMD_FAILURE;
}
snprintf(tms,26,"%s",asctime(timeinfo));
tms[24] = 0;
- user->WriteNumeric(391, "%s %s :%s",user->nick.c_str(),ServerInstance->Config->ServerName,tms);
+ user->WriteNumeric(RPL_TIME, "%s %s :%s",user->nick.c_str(),ServerInstance->Config->ServerName,tms);
return CMD_SUCCESS;
}
CmdResult CommandVersion::Handle (const std::vector<std::string>&, User *user)
{
- user->WriteNumeric(351, "%s :%s",user->nick.c_str(),ServerInstance->GetVersionString().c_str());
+ user->WriteNumeric(RPL_VERSION, "%s :%s",user->nick.c_str(),ServerInstance->GetVersionString().c_str());
ServerInstance->Config->Send005(user);
return CMD_SUCCESS;
}