X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresessioneventprocessor.cpp;h=02879807de0b8b9cad61aef544aba71af1d0ae2d;hp=af30bfb79287c931ae87acd86d5fd1a03bd0a9f2;hb=HEAD;hpb=edc55b1f86cf613a332eeeb5d85537a54120dfa5 diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index af30bfb7..c3dce758 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2019 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,6 +20,8 @@ #include "coresessioneventprocessor.h" +#include + #include "coreirclisthelper.h" #include "corenetwork.h" #include "coresession.h" @@ -132,9 +134,7 @@ void CoreSessionEventProcessor::processIrcEventAuthenticate(IrcEvent* e) CoreNetwork* net = coreNetwork(e); -#ifdef HAVE_SSL if (net->identityPtr()->sslCert().isNull()) { -#endif QString construct = net->saslAccount(); construct.append(QChar(QChar::Null)); construct.append(net->saslAccount()); @@ -143,12 +143,10 @@ void CoreSessionEventProcessor::processIrcEventAuthenticate(IrcEvent* e) QByteArray saslData = QByteArray(construct.toLatin1().toBase64()); saslData.prepend("AUTHENTICATE "); net->putRawLine(saslData); -#ifdef HAVE_SSL } else { net->putRawLine("AUTHENTICATE +"); } -#endif } void CoreSessionEventProcessor::processIrcEventCap(IrcEvent* e) @@ -363,6 +361,10 @@ void CoreSessionEventProcessor::processIrcEventChghost(IrcEvent* e) } } +// IRCv3 INVITE - ": INVITE " +// Example: :ChanServ!ChanServ@example.com INVITE Attila #channel +// +// See https://ircv3.net/specs/extensions/invite-notify-3.2 void CoreSessionEventProcessor::processIrcEventInvite(IrcEvent* e) { if (checkParamCount(e, 2)) { @@ -791,6 +793,25 @@ void CoreSessionEventProcessor::processIrcEventError(IrcEvent* e) } } + +// IRCv3 SETNAME - ":nick!user@host SETNAME :realname goes here" +// Example: :batman!~batman@bat.cave SETNAME :Bruce Wayne +// +// See https://ircv3.net/specs/extensions/setname +void CoreSessionEventProcessor::processIrcEventSetname(IrcEvent* e) +{ + if (checkParamCount(e, 1)) { + IrcUser* ircuser = e->network()->updateNickFromMask(e->prefix()); + if (!ircuser) { + qWarning() << Q_FUNC_INFO << "Unknown IrcUser!"; + return; + } + + QString newname = e->params().at(0); + ircuser->setRealName(newname); + } +} + #ifdef HAVE_QCA2 void CoreSessionEventProcessor::processKeyEvent(KeyEvent* e) { @@ -1176,7 +1197,7 @@ void CoreSessionEventProcessor::processIrcEvent353(IrcEvent* e) return; // param[0] is either "=", "*" or "@" indicating a public, private or secret channel - // we don't use this information at the time beeing + // we don't use this information at the time being QString channelname = e->params()[1]; IrcChannel* channel = e->network()->ircChannel(channelname); @@ -1360,7 +1381,7 @@ void CoreSessionEventProcessor::processIrcEvent432(IrcEventNumeric* e) QString errnick; if (e->params().count() < 2) { - // handle unreal-ircd bug, where unreal ircd doesnt supply a TARGET in ERR_ERRONEUSNICKNAME during registration phase: + // handle unreal-ircd bug, where unreal ircd doesn't supply a TARGET in ERR_ERRONEUSNICKNAME during registration phase: // nick @@@ // :irc.scortum.moep.net 432 @@@ :Erroneous Nickname: Illegal characters // correct server reply: @@ -1536,7 +1557,7 @@ void CoreSessionEventProcessor::handleCtcpClientinfo(CtcpEvent* e) QStringList supportedHandlers; for (const QString& handler : providesHandlers()) supportedHandlers << handler.toUpper(); - qSort(supportedHandlers); + std::sort(supportedHandlers.begin(), supportedHandlers.end()); e->setReply(supportedHandlers.join(" ")); }