/***************************************************************************
- * Copyright (C) 2005-2019 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "coresessioneventprocessor.h"
+#include <algorithm>
+
#include "coreirclisthelper.h"
#include "corenetwork.h"
#include "coresession.h"
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());
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)
}
}
+// IRCv3 INVITE - ":<inviter> INVITE <target> <channel>"
+// 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)) {
}
}
+
+// IRCv3 SETNAME - ":nick!user@host SETNAME :realname goes here"
+// Example: :batman!~batman@bat.cave SETNAME :Bruce Wayne <bruce@wayne.enterprises>
+//
+// 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)
{