diff options
| author | 2017-07-09 22:36:40 +0100 | |
|---|---|---|
| committer | 2017-07-09 22:45:00 +0100 | |
| commit | c0aba5b728b0a921d95ec120aa638dab1520b42f (patch) | |
| tree | 5470b2e12cc40ba8ea5cafe36fc254c73192cb48 /src/modules/m_cgiirc.cpp | |
| parent | Merge pull request #1302 from Adam-/master+txt (diff) | |
| parent | Release v2.0.24 (diff) | |
| download | inspircd++-c0aba5b728b0a921d95ec120aa638dab1520b42f.tar.gz inspircd++-c0aba5b728b0a921d95ec120aa638dab1520b42f.tar.bz2 inspircd++-c0aba5b728b0a921d95ec120aa638dab1520b42f.zip | |
Merge v2.0.23 and v2.0.24 into master.
Diffstat (limited to 'src/modules/m_cgiirc.cpp')
| -rw-r--r-- | src/modules/m_cgiirc.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp index 09d6e5fdf..5eba5ce35 100644 --- a/src/modules/m_cgiirc.cpp +++ b/src/modules/m_cgiirc.cpp @@ -77,6 +77,7 @@ class CommandWebirc : public Command realhost("cgiirc_realhost", ExtensionItem::EXT_USER, Creator) , realip("cgiirc_realip", ExtensionItem::EXT_USER, Creator) { + allow_empty_last_param = false; works_before_reg = true; this->syntax = "password client hostname ip"; } @@ -85,6 +86,14 @@ class CommandWebirc : public Command if(user->registered == REG_ALL) return CMD_FAILURE; + irc::sockets::sockaddrs ipaddr; + if (!irc::sockets::aptosa(parameters[3], 0, ipaddr)) + { + IS_LOCAL(user)->CommandFloodPenalty += 5000; + ServerInstance->SNO->WriteGlobalSno('a', "Connecting user %s tried to use WEBIRC but gave an invalid IP address.", user->GetFullRealHost().c_str()); + return CMD_FAILURE; + } + for(CGIHostlist::iterator iter = Hosts.begin(); iter != Hosts.end(); iter++) { if(InspIRCd::Match(user->host, iter->hostmask, ascii_case_insensitive_map) || InspIRCd::MatchCIDR(user->GetIPString(), iter->hostmask, ascii_case_insensitive_map)) @@ -112,6 +121,7 @@ class CommandWebirc : public Command } } + IS_LOCAL(user)->CommandFloodPenalty += 5000; ServerInstance->SNO->WriteGlobalSno('w', "Connecting user %s tried to use WEBIRC, but didn't match any configured webirc blocks.", user->GetFullRealHost().c_str()); return CMD_FAILURE; } |
