diff options
Diffstat (limited to 'src/mode.cpp')
-rw-r--r-- | src/mode.cpp | 3 |
1 files changed, 3 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 :) */ |