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;
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 {
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++;
}
}
if(params.isEmpty()) {
- quWarning() << "IrcServerHandler::handlePrivmsg(): received PRIVMSG without target or message from: " << prefix;
+ quWarning() << "IrcServerHandler::handlePrivmsg(): received PRIVMSG without target or message from:" << prefix;
return;
}
/* RPL_??? - "<channel> <creation time (unix)>" */
void IrcServerHandler::handle329(const QString &prefix, const QList<QByteArray> ¶ms) {
Q_UNUSED(prefix);
+ Q_UNUSED(params)
+#ifdef __GNUC__
+# warning "Implement handle329 (Channel creation time)"
+#endif
// FIXME implement this...
}
return;
QString channel = serverDecode(params[0]);
- network()->ircChannel(channel)->setTopic(QString());
+ IrcChannel *chan = network()->ircChannel(channel);
+ if(chan)
+ chan->setTopic(QString());
+
emit displayMsg(Message::Server, BufferInfo::ChannelBuffer, channel, tr("No topic is set for %1.").arg(channel));
}
QString channel = serverDecode(params[0]);
QString topic = channelDecode(channel, params[1]);
- network()->ircChannel(channel)->setTopic(topic);
+ IrcChannel *chan = network()->ircChannel(channel);
+ if(chan)
+ chan->setTopic(topic);
+
emit displayMsg(Message::Server, BufferInfo::ChannelBuffer, channel, tr("Topic for %1 is \"%2\"").arg(channel, topic));
}
IrcChannel *channel = network()->ircChannel(channelname);
if(!channel) {
- quWarning() << "IrcServerHandler::handle353(): received unknown target channel: " << channelname;
+ quWarning() << "IrcServerHandler::handle353(): received unknown target channel:" << channelname;
return;
}
bool IrcServerHandler::checkParamCount(const QString &methodName, const QList<QByteArray> ¶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;