]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_cgiirc.cpp
Update wiki links to use HTTPS and point to the correct pages.
[user/henk/code/inspircd.git] / src / modules / m_cgiirc.cpp
index d26c0bca1afb2eb3e154816ef514c9716031c88c..9e1a546d6ae41ffe89b6a766b1f3051282ac00a2 100644 (file)
@@ -85,6 +85,7 @@ class CommandWebirc : public Command
                        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;
                        }
@@ -98,7 +99,7 @@ class CommandWebirc : public Command
                                                realhost.set(user, user->host);
                                                realip.set(user, user->GetIPString());
 
-                                               bool host_ok = (parameters[2].length() < 64);
+                                               bool host_ok = (parameters[2].length() < 64) && (parameters[2].find_first_not_of("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-") == std::string::npos);
                                                const std::string& newhost = (host_ok ? parameters[2] : parameters[3]);
 
                                                if (notify)
@@ -116,6 +117,7 @@ class CommandWebirc : public Command
                                }
                        }
 
+                       IS_LOCAL(user)->CommandFloodPenalty += 5000;
                        ServerInstance->SNO->WriteGlobalSno('a', "Connecting user %s tried to use WEBIRC, but didn't match any configured webirc blocks.", user->GetFullRealHost().c_str());
                        return CMD_FAILURE;
                }