Modified automatic branch mask generation for IP addresses.
authorEdward Hades <edward.hades@gmail.com>
Tue, 20 Jan 2009 17:15:48 +0000 (20:15 +0300)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 20 Jan 2009 19:52:48 +0000 (20:52 +0100)
Now instead for ident Nick!~Login@123.45.67.89 it sets mask to
*!~Login@123.45.67.* instead of *!~Login@*.67.89.

src/core/userinputhandler.cpp

index ae504a9..722c3fc 100644 (file)
@@ -104,7 +104,11 @@ void UserInputHandler::banOrUnban(const BufferInfo &bufferInfo, const QString &m
       return;
     }
 
-    if(generalizedHost.lastIndexOf(".") != -1 && generalizedHost.lastIndexOf(".", generalizedHost.lastIndexOf(".")-1) != -1) {
+    static QRegExp ipAddress("\\d+\\.\\d+\\.\\d+\\.\\d+");
+    if(ipAddress.exactMatch(generalizedHost))    {
+        int lastDotPos = generalizedHost.lastIndexOf('.') + 1;
+        generalizedHost.replace(lastDotPos, generalizedHost.length() - lastDotPos, '*');
+    } else if(generalizedHost.lastIndexOf(".") != -1 && generalizedHost.lastIndexOf(".", generalizedHost.lastIndexOf(".")-1) != -1) {
       int secondLastPeriodPosition = generalizedHost.lastIndexOf(".", generalizedHost.lastIndexOf(".")-1);
       generalizedHost.replace(0, secondLastPeriodPosition, "*");
     }