summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2017-12-09 16:12:00 +0000
committerPeter Powell <petpow@saberuk.com>2017-12-09 17:16:11 +0000
commit150258b1f110aad58c8882b76474a4ceb3b2ab97 (patch)
treeb67bd53f27f81cf3e54267f35e2270ca8eaff392
parente8da9b7a266c545844bfb4a3987b7fc0b05f2cf7 (diff)
Clean up numeric usage in WHOIS and WHOWAS.
- Add constants for all of the used numerics. - Switch RPL_CHANNELSMSG from 336 to 651 to avoid a conflict with RPL_INVITELIST from ircd-hybrid. - Switch RPL_WHOWASIP from 379 to 652 to avoid a conflict with RPL_WHOISMODES from UnrealIRCd.
-rw-r--r--include/numerics.h4
-rw-r--r--src/coremods/core_whois.cpp42
-rw-r--r--src/coremods/core_whowas.cpp10
-rw-r--r--src/modules/m_botmode.cpp2
4 files changed, 40 insertions, 18 deletions
diff --git a/include/numerics.h b/include/numerics.h
index 2dc8d8414..8befdab2e 100644
--- a/include/numerics.h
+++ b/include/numerics.h
@@ -81,7 +81,6 @@ enum
RPL_RULESEND = 309, // unrealircd
RPL_WHOISSERVER = 312,
- RPL_WHOWASUSER = 314,
RPL_ENDOFWHO = 315,
RPL_ENDOFWHOIS = 318,
@@ -106,7 +105,6 @@ enum
RPL_LINKS = 364,
RPL_ENDOFLINKS = 365,
RPL_ENDOFNAMES = 366,
- RPL_ENDOFWHOWAS = 369,
RPL_INFO = 371,
RPL_ENDOFINFO = 374,
@@ -114,8 +112,6 @@ enum
RPL_MOTDSTART = 375,
RPL_ENDOFMOTD = 376,
- RPL_WHOWASIP = 379,
-
RPL_YOUAREOPER = 381,
RPL_REHASHING = 382,
RPL_TIME = 391,
diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp
index 1dd087e12..19f5a862b 100644
--- a/src/coremods/core_whois.cpp
+++ b/src/coremods/core_whois.cpp
@@ -21,6 +21,22 @@
#include "inspircd.h"
+enum
+{
+ // From RFC 1459.
+ RPL_WHOISUSER = 311,
+ RPL_WHOISOPERATOR = 313,
+ RPL_WHOISIDLE = 317,
+ RPL_WHOISCHANNELS = 319,
+
+ // From UnrealIRCd.
+ RPL_WHOISHOST = 378,
+ RPL_WHOISMODES = 379,
+
+ // InspIRCd-specific.
+ RPL_CHANNELSMSG = 651
+};
+
class WhoisContextImpl : public Whois::Context
{
Events::ModuleEventProvider& lineevprov;
@@ -101,7 +117,7 @@ class WhoisChanListNumericBuilder : public Numeric::GenericBuilder<' ', false, W
{
public:
WhoisChanListNumericBuilder(WhoisContextImpl& whois)
- : Numeric::GenericBuilder<' ', false, WhoisNumericSink>(WhoisNumericSink(whois), 319, false, whois.GetSource()->nick.size() + whois.GetTarget()->nick.size() + 1)
+ : Numeric::GenericBuilder<' ', false, WhoisNumericSink>(WhoisNumericSink(whois), RPL_WHOISCHANNELS, false, whois.GetSource()->nick.size() + whois.GetTarget()->nick.size() + 1)
{
GetNumeric().push(whois.GetTarget()->nick).push(std::string());
}
@@ -147,7 +163,7 @@ class WhoisChanList
{
num.Flush();
if (!spynum.IsEmpty())
- whois.SendLine(336, "is on private/secret channels:");
+ whois.SendLine(RPL_CHANNELSMSG, "is on private/secret channels:");
spynum.Flush();
}
};
@@ -177,45 +193,45 @@ void CommandWhois::DoWhois(LocalUser* user, User* dest, time_t signon, unsigned
{
WhoisContextImpl whois(user, dest, lineevprov);
- whois.SendLine(311, dest->ident, dest->GetDisplayedHost(), '*', dest->fullname);
+ whois.SendLine(RPL_WHOISUSER, dest->ident, dest->GetDisplayedHost(), '*', dest->fullname);
if (whois.IsSelfWhois() || user->HasPrivPermission("users/auspex"))
{
- whois.SendLine(378, InspIRCd::Format("is connecting from %s@%s %s", dest->ident.c_str(), dest->GetRealHost().c_str(), dest->GetIPString().c_str()));
+ whois.SendLine(RPL_WHOISHOST, InspIRCd::Format("is connecting from %s@%s %s", dest->ident.c_str(), dest->GetRealHost().c_str(), dest->GetIPString().c_str()));
}
SendChanList(whois);
if (!whois.IsSelfWhois() && !ServerInstance->Config->HideWhoisServer.empty() && !user->HasPrivPermission("servers/auspex"))
{
- whois.SendLine(312, ServerInstance->Config->HideWhoisServer, ServerInstance->Config->Network);
+ whois.SendLine(RPL_WHOISSERVER, ServerInstance->Config->HideWhoisServer, ServerInstance->Config->Network);
}
else
{
- whois.SendLine(312, dest->server->GetName(), dest->server->GetDesc());
+ whois.SendLine(RPL_WHOISSERVER, dest->server->GetName(), dest->server->GetDesc());
}
if (dest->IsAway())
{
- whois.SendLine(301, dest->awaymsg);
+ whois.SendLine(RPL_AWAY, dest->awaymsg);
}
if (dest->IsOper())
{
if (ServerInstance->Config->GenericOper)
- whois.SendLine(313, "is an IRC operator");
+ whois.SendLine(RPL_WHOISOPERATOR, "is an IRC operator");
else
- whois.SendLine(313, InspIRCd::Format("is %s %s on %s", (strchr("AEIOUaeiou",dest->oper->name[0]) ? "an" : "a"), dest->oper->name.c_str(), ServerInstance->Config->Network.c_str()));
+ whois.SendLine(RPL_WHOISOPERATOR, InspIRCd::Format("is %s %s on %s", (strchr("AEIOUaeiou",dest->oper->name[0]) ? "an" : "a"), dest->oper->name.c_str(), ServerInstance->Config->Network.c_str()));
}
if (whois.IsSelfWhois() || user->HasPrivPermission("users/auspex"))
{
if (dest->IsModeSet(snomaskmode))
{
- whois.SendLine(379, InspIRCd::Format("is using modes %s %s", dest->GetModeLetters().c_str(), snomaskmode->GetUserParameter(dest).c_str()));
+ whois.SendLine(RPL_WHOISMODES, InspIRCd::Format("is using modes %s %s", dest->GetModeLetters().c_str(), snomaskmode->GetUserParameter(dest).c_str()));
}
else
{
- whois.SendLine(379, InspIRCd::Format("is using modes %s", dest->GetModeLetters().c_str()));
+ whois.SendLine(RPL_WHOISMODES, InspIRCd::Format("is using modes %s", dest->GetModeLetters().c_str()));
}
}
@@ -227,10 +243,10 @@ void CommandWhois::DoWhois(LocalUser* user, User* dest, time_t signon, unsigned
*/
if ((idle) || (signon))
{
- whois.SendLine(317, idle, signon, "seconds idle, signon time");
+ whois.SendLine(RPL_WHOISIDLE, idle, signon, "seconds idle, signon time");
}
- whois.SendLine(318, "End of /WHOIS list.");
+ whois.SendLine(RPL_ENDOFWHOIS, "End of /WHOIS list.");
}
CmdResult CommandWhois::HandleRemote(const std::vector<std::string>& parameters, RemoteUser* target)
diff --git a/src/coremods/core_whowas.cpp b/src/coremods/core_whowas.cpp
index af1f99737..1f72fe2d2 100644
--- a/src/coremods/core_whowas.cpp
+++ b/src/coremods/core_whowas.cpp
@@ -23,6 +23,16 @@
#include "inspircd.h"
#include "commands/cmd_whowas.h"
+enum
+{
+ // From RFC 1459.
+ RPL_WHOWASUSER = 314,
+ RPL_ENDOFWHOWAS = 369,
+
+ // InspIRCd-specific.
+ RPL_WHOWASIP = 652
+};
+
CommandWhowas::CommandWhowas( Module* parent)
: Command(parent, "WHOWAS", 1)
{
diff --git a/src/modules/m_botmode.cpp b/src/modules/m_botmode.cpp
index 487bc140b..1544562c0 100644
--- a/src/modules/m_botmode.cpp
+++ b/src/modules/m_botmode.cpp
@@ -24,7 +24,7 @@
enum
{
// From UnrealIRCd.
- RPL_WHOISBOT = 335,
+ RPL_WHOISBOT = 335
};
class ModuleBotMode : public Module, public Whois::EventListener