made the ctcp handler recognize faulty ctcp actions
authorMarcus Eggenberger <egs@quassel-irc.org>
Thu, 10 Apr 2008 19:56:22 +0000 (19:56 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Thu, 10 Apr 2008 19:56:22 +0000 (19:56 +0000)
src/core/ctcphandler.cpp

index 23753cc..95fe173 100644 (file)
@@ -108,13 +108,11 @@ void CtcpHandler::parse(Message::Type messageType, const QString &prefix, const
 
     xdelimEndPos = dequotedMessage.indexOf(XDELIM, xdelimPos + 1);
     if(xdelimEndPos == -1) {
 
     xdelimEndPos = dequotedMessage.indexOf(XDELIM, xdelimPos + 1);
     if(xdelimEndPos == -1) {
-      // no matching end delimiter found...
-      dequotedMessage = dequotedMessage.mid(xdelimPos + 1);
-      break;
-    } else {
-      ctcp = xdelimDequote(dequotedMessage.mid(xdelimPos + 1, xdelimEndPos - xdelimPos - 1));
-      dequotedMessage = dequotedMessage.mid(xdelimEndPos + 1);
+      // no matching end delimiter found... treat rest of the message as ctcp
+      xdelimEndPos = dequotedMessage.count();
     }
     }
+    ctcp = xdelimDequote(dequotedMessage.mid(xdelimPos + 1, xdelimEndPos - xdelimPos - 1));
+    dequotedMessage = dequotedMessage.mid(xdelimEndPos + 1);
 
     //dispatch the ctcp command
     QString ctcpcmd = userDecode(target, ctcp.left(spacePos));
 
     //dispatch the ctcp command
     QString ctcpcmd = userDecode(target, ctcp.left(spacePos));