}
+bool Network::saslMaybeSupports(const QString &saslMechanism) const
+{
+ // Get the SASL capability value
+ QString saslCapValue = capValue(IrcCap::SASL);
+ // SASL mechanisms are only specified in capability values as part of SASL 3.2. In SASL 3.1,
+ // it's handled differently. If we don't know via capability value, assume it's supported to
+ // reduce the risk of breaking existing setups.
+ // See: http://ircv3.net/specs/extensions/sasl-3.1.html
+ // And: http://ircv3.net/specs/extensions/sasl-3.2.html
+ return (saslCapValue.length() == 0)
+ || (saslCapValue.contains(saslMechanism, Qt::CaseInsensitive));
+}
+
+
IrcUser *Network::newIrcUser(const QString &hostmask, const QVariantMap &initData)
{
QString nick(nickFromMask(hostmask).toLower());