X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoresessioneventprocessor.cpp;h=ae67021963292198b7bb0a98b11830c9ec330062;hb=fa2e185ecffa83feca93577a2f8348d554e61f96;hp=f86b103591e81cf9734511c26659e82001dcacb2;hpb=a2e096ed11221866f9707ad61265a9d359a21de3;p=quassel.git diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index f86b1035..ae670219 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -515,7 +515,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); } @@ -1092,6 +1093,22 @@ void CoreSessionEventProcessor::processWhoInformation (Network *net, const QStri } +/* ERR_NOSUCHCHANNEL - " :No such channel" */ +void CoreSessionEventProcessor::processIrcEvent403(IrcEventNumeric *e) +{ + // If this is the result of an AutoWho, hide it. It's confusing to show to the user. + if (!checkParamCount(e, 2)) + return; + + QString channelOrNick = e->params()[0]; + // Check if channel name has a who in progress. + // If not, then check if user nick exists and has a who in progress. + if (coreNetwork(e)->isAutoWhoInProgress(channelOrNick)) { + qDebug() << "Channel/nick" << channelOrNick << "no longer exists during AutoWho, ignoring"; + e->setFlag(EventManager::Silent); + } +} + /* ERR_ERRONEUSNICKNAME */ void CoreSessionEventProcessor::processIrcEvent432(IrcEventNumeric *e) {