X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.cpp;h=5484d3b4e2ba4eefbe77e8967cca935a945aaf3f;hb=17fa448705597f9cd7f24a03a630f0cad69d29ee;hp=7604cd21ba84d50410e313ca353b5ff560fe59ce;hpb=0d66a6f9ed6ea90493bca69ff781a1131d981503;p=quassel.git diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index 7604cd21..5484d3b4 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -216,6 +216,12 @@ void IrcServerHandler::handleMode(const QString &prefix, const QList emit displayMsg(Message::Mode, BufferInfo::ChannelBuffer, serverDecode(params[0]), serverDecode(params).join(" "), prefix); IrcChannel *channel = network()->ircChannel(params[0]); + if(!channel) { + // we received mode information for a channel we're not in. that means probably we've just been kicked out or something like that + // anyways: we don't have a place to store the data --> discard the info. + return; + } + QString modes = params[1]; bool add = true; int paramOffset = 2; @@ -238,7 +244,7 @@ void IrcServerHandler::handleMode(const QString &prefix, const QList else channel->removeUserMode(ircUser, QString(modes[c])); } else { - quWarning() << "Received MODE with too few parameters: " << serverDecode(params); + quWarning() << "Received MODE with too few parameters:" << serverDecode(params); } paramOffset++; } else { @@ -249,7 +255,7 @@ void IrcServerHandler::handleMode(const QString &prefix, const QList if(paramOffset < params.count()) { value = params[paramOffset]; } else { - quWarning() << "Received MODE with too few parameters: " << serverDecode(params); + quWarning() << "Received MODE with too few parameters:" << serverDecode(params); } paramOffset++; } @@ -382,7 +388,7 @@ void IrcServerHandler::handlePrivmsg(const QString &prefix, const QList /* RPL_??? - " " */ void IrcServerHandler::handle329(const QString &prefix, const QList ¶ms) { Q_UNUSED(prefix); + Q_UNUSED(params) +#ifdef __GNUC__ +# warning "Implement handle329 (Channel creation time)" +#endif // FIXME implement this... } @@ -863,7 +873,7 @@ void IrcServerHandler::handle353(const QString &prefix, const QList IrcChannel *channel = network()->ircChannel(channelname); if(!channel) { - quWarning() << "IrcServerHandler::handle353(): received unknown target channel: " << channelname; + quWarning() << "IrcServerHandler::handle353(): received unknown target channel:" << channelname; return; } @@ -947,7 +957,7 @@ void IrcServerHandler::tryNextNick(const QString &errnick) { bool IrcServerHandler::checkParamCount(const QString &methodName, const QList ¶ms, int minParams) { if(params.count() < minParams) { - quWarning() << qPrintable(methodName) << " requires " << minParams << " parameters but received only " << params.count() << serverDecode(params); + quWarning() << qPrintable(methodName) << "requires" << minParams << "parameters but received only" << params.count() << serverDecode(params); return false; } else { return true;