X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fircserverhandler.cpp;h=033d6c8d19fea3b9007da07cc832ceef93ef212c;hp=b9a2f6c988598f3353a0b1f0c154ed13d24b98c5;hb=326a0d0783c8ecffb6a7bae02fd74f66bd4242fa;hpb=6f0a153a674317d77233139fc50a2985af86e36e diff --git a/src/core/ircserverhandler.cpp b/src/core/ircserverhandler.cpp index b9a2f6c9..033d6c8d 100644 --- a/src/core/ircserverhandler.cpp +++ b/src/core/ircserverhandler.cpp @@ -197,6 +197,21 @@ void IrcServerHandler::defaultHandler(QString cmd, const QString &prefix, const //******************************/ // IRC SERVER HANDLER //******************************/ +void IrcServerHandler::handleInvite(const QString &prefix, const QList ¶ms) { + if(!checkParamCount("IrcServerHandler::handleInvite()", params, 2)) + return; +// qDebug() << "IrcServerHandler::handleInvite()" << prefix << params; + + IrcUser *ircuser = network()->updateNickFromMask(prefix); + if(!ircuser) { + return; + } + + QString channel = serverDecode(params[1]); + + emit displayMsg(Message::Invite, BufferInfo::StatusBuffer, "", tr("%1 invited you to channel %2").arg(ircuser->nick()).arg(channel)); +} + void IrcServerHandler::handleJoin(const QString &prefix, const QList ¶ms) { if(!checkParamCount("IrcServerHandler::handleJoin()", params, 1)) return; @@ -1249,25 +1264,15 @@ void IrcServerHandler::destroyNetsplits() { #ifdef HAVE_QCA2 QByteArray IrcServerHandler::decrypt(const QString &bufferName, const QByteArray &message_, bool isTopic) { - if(bufferName.isEmpty() || message_.isEmpty()) + if(message_.isEmpty()) return message_; - const QByteArray key = network()->cipherKey(bufferName); - if(key.isEmpty()) + Cipher *cipher = network()->cipher(bufferName); + if(!cipher) return message_; QByteArray message = message_; - - CoreIrcChannel *channel = qobject_cast(network()->ircChannel(bufferName)); - if(channel) { - if(channel->cipher()->setKey(key)) - message = isTopic? channel->cipher()->decryptTopic(message) : channel->cipher()->decrypt(message); - } else { - CoreIrcUser *user = qobject_cast(network()->ircUser(bufferName)); - if(user && user->cipher()->setKey(key)) - message = user->cipher()->decrypt(message); - } - + message = isTopic? cipher->decryptTopic(message) : cipher->decrypt(message); return message; } #endif