From 87bfbefebab8bf25cfcbfd0b4935d8e6822f4508 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Sat, 13 Feb 2010 11:21:16 +0000 Subject: server config: changed "supportsSTARTTLS" to "enabledSTARTTLS" and enabled by default; this option is now meaningful only as a way to force STARTTLS disabled on a server that supports it; server config: added "enabledSASL", "SaslNick", "SaslPass" options main config: added global "enable SASL" option sparser: handle CAP LS, REQ, ACK, NAK, END ircconnection: added SASL support (only PLAIN method is supported by now) git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3958 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/kvilib/irc/kvi_ircserver.cpp | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) (limited to 'src/kvilib/irc/kvi_ircserver.cpp') diff --git a/src/kvilib/irc/kvi_ircserver.cpp b/src/kvilib/irc/kvi_ircserver.cpp index ff81d171a..598fe99fc 100644 --- a/src/kvilib/irc/kvi_ircserver.cpp +++ b/src/kvilib/irc/kvi_ircserver.cpp @@ -87,6 +87,8 @@ KviServer::KviServer(const KviServer & serv) m_iProxy = serv.m_iProxy; m_szUserIdentityId = serv.m_szUserIdentityId; m_bAutoConnect = serv.m_bAutoConnect; + m_szSaslNick = serv.m_szSaslNick; + m_szSaslPass = serv.m_szSaslPass; if(serv.m_pAutoJoinChannelList) m_pAutoJoinChannelList = new QStringList(*(serv.m_pAutoJoinChannelList)); @@ -118,6 +120,8 @@ void KviServer::operator=(const KviServer & serv) m_szUserIdentityId = serv.m_szUserIdentityId; m_iProxy = serv.m_iProxy; m_bAutoConnect = serv.m_bAutoConnect; + m_szSaslNick = serv.m_szSaslNick; + m_szSaslPass = serv.m_szSaslPass; if(m_pAutoJoinChannelList) delete m_pAutoJoinChannelList; if(serv.m_pAutoJoinChannelList) @@ -154,7 +158,7 @@ void KviServer::generateUniqueId() QString KviServer::ircUri() { QString szUri("irc"); - if(useSSL() || supportsSTARTTLS()) szUri += "s"; + if(useSSL()) szUri += "s"; if(isIPv6()) szUri += "6"; szUri += "://"; szUri += m_szHostname; @@ -192,6 +196,10 @@ bool KviServer::load(KviConfig * cfg, const QString & szPrefix) m_szPass = cfg->readQStringEntry(szTmp); KviQString::sprintf(szTmp,"%QNick",&szPrefix); m_szNick = cfg->readQStringEntry(szTmp); + KviQString::sprintf(szTmp,"%QSaslPass",&szPrefix); + m_szSaslPass = cfg->readQStringEntry(szTmp); + KviQString::sprintf(szTmp,"%QSaslNick",&szPrefix); + m_szSaslNick = cfg->readQStringEntry(szTmp); KviQString::sprintf(szTmp,"%QRealName",&szPrefix); m_szRealName = cfg->readQStringEntry(szTmp); KviQString::sprintf(szTmp,"%QInitUmode",&szPrefix); @@ -224,8 +232,10 @@ bool KviServer::load(KviConfig * cfg, const QString & szPrefix) setCacheIp(cfg->readBoolEntry(szTmp,false)); // true ? KviQString::sprintf(szTmp,"%QSSL",&szPrefix); setUseSSL(cfg->readBoolEntry(szTmp,false)); - KviQString::sprintf(szTmp,"%QSupportsSTARTTLS",&szPrefix); - setSupportsSTARTTLS(cfg->readBoolEntry(szTmp,false)); + KviQString::sprintf(szTmp,"%QEnabledSTARTTLS",&szPrefix); + setEnabledSTARTTLS(cfg->readBoolEntry(szTmp,true)); + KviQString::sprintf(szTmp,"%QEnabledSASL",&szPrefix); + setEnabledSASL(cfg->readBoolEntry(szTmp,false)); KviQString::sprintf(szTmp,"%QProxy",&szPrefix); setProxy(cfg->readIntEntry(szTmp,-2)); KviQString::sprintf(szTmp,"%QUserIdentityId",&szPrefix); @@ -265,6 +275,16 @@ void KviServer::save(KviConfig * cfg, const QString & szPrefix) KviQString::sprintf(szTmp,"%QNick",&szPrefix); cfg->writeEntry(szTmp,m_szNick); } + if(!m_szSaslPass.isEmpty()) + { + KviQString::sprintf(szTmp,"%QSaslPass",&szPrefix); + cfg->writeEntry(szTmp,m_szSaslPass); + } + if(!m_szSaslNick.isEmpty()) + { + KviQString::sprintf(szTmp,"%QSaslNick",&szPrefix); + cfg->writeEntry(szTmp,m_szSaslNick); + } if(!m_szRealName.isEmpty()) { KviQString::sprintf(szTmp,"%QRealName",&szPrefix); @@ -330,10 +350,15 @@ void KviServer::save(KviConfig * cfg, const QString & szPrefix) KviQString::sprintf(szTmp,"%QSSL",&szPrefix); cfg->writeEntry(szTmp,useSSL()); } - if(supportsSTARTTLS()) + if(!enabledSTARTTLS()) + { + KviQString::sprintf(szTmp,"%QEnabledSTARTTLS",&szPrefix); + cfg->writeEntry(szTmp,enabledSTARTTLS()); + } + if(enabledSASL()) { - KviQString::sprintf(szTmp,"%QSupportsSTARTTLS",&szPrefix); - cfg->writeEntry(szTmp,supportsSTARTTLS()); + KviQString::sprintf(szTmp,"%QEnabledSASL",&szPrefix); + cfg->writeEntry(szTmp,enabledSASL()); } if(proxy()!=-2) { -- cgit v1.3.1-10-gc9f91