summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mode.cpp3
-rw-r--r--src/modules/m_gecosban.cpp2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/mode.cpp b/src/mode.cpp
index b778d1d5c..9f92de314 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -780,6 +780,9 @@ void ModeParser::CleanMask(std::string &mask)
std::string::size_type pos_of_dot = mask.find_first_of('.');
std::string::size_type pos_of_colons = mask.find("::"); /* Because ipv6 addresses are colon delimited -- double so it treats extban as nick */
+ if (mask.length() >= 2 && mask[1] == ':')
+ return; // if it's an extban, don't even try guess how it needs to be formed.
+
if ((pos_of_pling == std::string::npos) && (pos_of_at == std::string::npos))
{
/* Just a nick, or just a host - or clearly ipv6 (starting with :) */
diff --git a/src/modules/m_gecosban.cpp b/src/modules/m_gecosban.cpp
index 49ca17fe0..3c041c548 100644
--- a/src/modules/m_gecosban.cpp
+++ b/src/modules/m_gecosban.cpp
@@ -42,6 +42,8 @@ class ModuleNickBan : public Module
if (!c)
return 0;
+ ServerInstance->Logs->Log("EXTBANS", DEBUG, "Checking if %s is banned", user->fullname.c_str());
+
if (c->IsExtBanned(user->fullname, 'r'))
{
// XXX: send a numeric here