From: Shane Synan Date: Wed, 29 Jun 2016 21:11:37 +0000 (-0400) Subject: Set account on extended-join, simplify, fix docs X-Git-Tag: travis-deploy-test~423 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=c37f66ea674fa946ca569d368094ea4adc48fb0f;hp=b53db87e90676f24e454efa57dd2cbea745d53c5 Set account on extended-join, simplify, fix docs Now that account tracking exists, update extended-join to set account data, too. This was accidentally left out of the IRCv3 fix-up pull request. Simplify account tracking in 'processIrcEventAccount'. No need to check for '*' when that's used internally to represent logged-out. Update documentation to mention 'extended-join' in WHOX and IrcEventAccount handling. --- diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index 69d75695..c7a5b5b6 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -242,15 +242,9 @@ void CoreSessionEventProcessor::processIrcEventAccount(IrcEvent *e) IrcUser *ircuser = e->network()->updateNickFromMask(e->prefix()); if (ircuser) { - QString newAccount = e->params().at(0); - // WHOX uses '0' to indicate logged-out, account-notify uses '*' - if (newAccount != "*") { - // Account logged in, set account name - ircuser->setAccount(newAccount); - } else { - // Account logged out, set account name to logged-out - ircuser->setAccount("*"); - } + // WHOX uses '0' to indicate logged-out, account-notify and extended-join uses '*'. + // As '*' is used internally to represent logged-out, no need to handle that differently. + ircuser->setAccount(e->params().at(0)); } else { qDebug() << "Received account-notify data for unknown user" << e->prefix(); } @@ -324,7 +318,9 @@ void CoreSessionEventProcessor::processIrcEventJoin(IrcEvent *e) // If logged in, :nick!user@host JOIN #channelname accountname :Real Name // If logged out, :nick!user@host JOIN #channelname * :Real Name // See: http://ircv3.net/specs/extensions/extended-join-3.1.html - // FIXME Keep track of authed user account, requires adding support to ircuser.h/cpp + // WHOX uses '0' to indicate logged-out, account-notify and extended-join uses '*'. + // As '*' is used internally to represent logged-out, no need to handle that differently. + ircuser->setAccount(e->params()[1]); // Update the user's real name, too ircuser->setRealName(e->params()[2]); } @@ -882,7 +878,7 @@ void CoreSessionEventProcessor::processIrcEvent324(IrcEvent *e) } -/* RPL_WHOISACCOUNT: " :is authed as */ +/* RPL_WHOISACCOUNT - " :is authed as" */ void CoreSessionEventProcessor::processIrcEvent330(IrcEvent *e) { if (!checkParamCount(e, 3)) @@ -1030,7 +1026,7 @@ void CoreSessionEventProcessor::processIrcEvent354(IrcEvent *e) // Don't use .section(" ", 1) with WHOX replies, for there's no hopcount to trim out // As part of IRCv3 account-notify, check account name - // WHOX uses '0' to indicate logged-out, account-notify uses '*' + // WHOX uses '0' to indicate logged-out, account-notify and extended-join uses '*'. QString newAccount = e->params()[7]; if (newAccount != "0") { // Account logged in, set account name