summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd20.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/inspircd20.cpp')
-rw-r--r--modules/protocol/inspircd20.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 619afdbde..f58f6e172 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -17,10 +17,11 @@
static bool has_chghostmod = false;
static bool has_chgidentmod = false;
static bool has_globopsmod = true; // Not a typo
+static bool has_rlinemod = false;
#include "inspircd-ts6.h"
-IRCDVar myIrcd[] = {
- {"InspIRCd 2.0", /* ircd name */
+IRCDVar myIrcd = {
+ "InspIRCd 2.0", /* ircd name */
"+I", /* Modes used by pseudoclients */
1, /* SVSNICK */
1, /* Vhost */
@@ -42,9 +43,6 @@ IRCDVar myIrcd[] = {
"$", /* TLD Prefix for Global */
20, /* Max number of modes we can send per line */
1, /* IRCd sends a SSL users certificate fingerprint */
- }
- ,
- {NULL}
};
static bool has_servicesmod = false;
@@ -58,9 +56,9 @@ class InspIRCdProto : public InspIRCdTS6Proto
UplinkSocket::Message() << "CAPAB CAPABILITIES :PROTOCOL=1202";
UplinkSocket::Message() << "CAPAB END";
SendServer(Me);
- UplinkSocket::Message(Config->Numeric) << "BURST";
+ UplinkSocket::Message(Me) << "BURST";
Module *enc = ModuleManager::FindFirstOf(ENCRYPTION);
- UplinkSocket::Message(Config->Numeric) << "VERSION :Anope-" << Anope::Version() << " " << Me->GetName() << " :" << ircd->name <<" - (" << (enc ? enc->name : "unknown") << ") -- " << Anope::VersionBuildString();
+ UplinkSocket::Message(Me) << "VERSION :Anope-" << Anope::Version() << " " << Me->GetName() << " :" << ircd->name <<" - (" << (enc ? enc->name : "unknown") << ") -- " << Anope::VersionBuildString();
}
};
@@ -559,8 +557,16 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage
Anope::string module;
while (ssep.GetToken(module))
+ {
if (module.equals_cs("m_svshold.so"))
has_svsholdmod = true;
+ else if (module.find("m_rline.so") == 0)
+ {
+ has_rlinemod = true;
+ if (!Config->RegexEngine.empty() && Config->RegexEngine != module.substr(11))
+ Log() << "Warning: InspIRCd is using regex engine " << module.substr(11) << ", but we have " << Config->RegexEngine << ". This may cause inconsistencies.";
+ }
+ }
}
else if (params[0].equals_cs("MODSUPPORT"))
{
@@ -718,7 +724,7 @@ class ProtoInspIRCd : public Module
{
this->SetAuthor("Anope");
- pmodule_ircd_var(myIrcd);
+ pmodule_ircd_var(&myIrcd);
pmodule_ircd_proto(&this->ircd_proto);
pmodule_ircd_message(&this->ircd_message);