mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 02:59:01 -04:00
Convert more stuff to use numerics.h, change SERVER to send ERR_ALREADYREGISTERED instead of picking a random numeric. Also no longer send a notice to opers, as 1) this could flood and 2) stupid things like cgiirc will trigger this a lot. Additionally, add a note to REHASH about finding a way to kill rehash thread if needed.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10013 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
7009fbf66e
commit
0797f13121
@ -45,6 +45,7 @@ enum Numerics
|
||||
RPL_CHANNELCREATED = 329, // ???
|
||||
RPL_TOPIC = 332,
|
||||
RPL_TOPICTIME = 333, // not RFC, extremely common though
|
||||
RPL_VERSION = 351,
|
||||
RPL_NAMREPLY = 353,
|
||||
RPL_ENDOFNAMES = 366,
|
||||
|
||||
@ -52,12 +53,15 @@ enum Numerics
|
||||
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,
|
||||
@ -65,6 +69,7 @@ enum Numerics
|
||||
ERR_USERNOTINCHANNEL = 441,
|
||||
ERR_NOTREGISTERED = 451,
|
||||
ERR_NEEDMOREPARAMS = 461,
|
||||
ERR_ALREADYREGISTERED = 462,
|
||||
|
||||
/*
|
||||
* A quick side-rant about the next group of numerics..
|
||||
|
@ -46,6 +46,6 @@ CmdResult CommandJoin::Handle (const std::vector<std::string>& parameters, User
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ CmdResult CommandPass::Handle (const std::vector<std::string>& parameters, User
|
||||
// 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();
|
||||
|
@ -44,7 +44,7 @@ CmdResult CommandRehash::Handle (const std::vector<std::string>& parameters, Use
|
||||
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);
|
||||
@ -69,7 +69,10 @@ CmdResult CommandRehash::Handle (const std::vector<std::string>& parameters, Use
|
||||
}
|
||||
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
|
||||
|
@ -23,7 +23,6 @@ extern "C" DllExport Command* init_command(InspIRCd* Instance)
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ CmdResult CommandTime::Handle (const std::vector<std::string>&, User *user)
|
||||
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;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ extern "C" DllExport Command* init_command(InspIRCd* Instance)
|
||||
|
||||
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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user