X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresessioneventprocessor.cpp;h=ed2904cba692022e25abc932ed8c9319b0621653;hp=28c1a3884f7d72afe3fbcf2aa4e7083fb48742b1;hb=f8ebd4fd9a59bcb34a6ce45ce1f0b4a22beae884;hpb=aca9592be427fb2ac41249e8fc062d7a7e26d160 diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index 28c1a388..ed2904cb 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -373,7 +373,8 @@ void CoreSessionEventProcessor::processIrcEventPing(IrcEvent *e) { QString param = e->params().count() ? e->params().first() : QString(); // FIXME use events - coreNetwork(e)->putRawLine("PONG " + coreNetwork(e)->serverEncode(param)); + // Take priority so this won't get stuck behind other queued messages. + coreNetwork(e)->putRawLine("PONG " + coreNetwork(e)->serverEncode(param), true); } @@ -448,6 +449,21 @@ void CoreSessionEventProcessor::processIrcEventTopic(IrcEvent *e) } } +/* ERROR - "ERROR :reason" +Example: ERROR :Closing Link: nickname[xxx.xxx.xxx.xxx] (Large base64 image paste.) +See https://tools.ietf.org/html/rfc2812#section-3.7.4 */ +void CoreSessionEventProcessor::processIrcEventError(IrcEvent *e) +{ + if (!checkParamCount(e, 1)) + return; + + if (coreNetwork(e)->disconnectExpected()) { + // During QUIT, the server should send an error (often, but not always, "Closing Link"). As + // we're expecting it, don't show this to the user. + e->setFlag(EventManager::Silent); + } +} + #ifdef HAVE_QCA2 void CoreSessionEventProcessor::processKeyEvent(KeyEvent *e) @@ -1095,5 +1111,5 @@ void CoreSessionEventProcessor::handleCtcpTime(CtcpEvent *e) void CoreSessionEventProcessor::handleCtcpVersion(CtcpEvent *e) { e->setReply(QString("Quassel IRC %1 (built on %2) -- http://www.quassel-irc.org") - .arg(Quassel::buildInfo().plainVersionString).arg(Quassel::buildInfo().buildDate)); + .arg(Quassel::buildInfo().plainVersionString).arg(Quassel::buildInfo().commitDate)); }