X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresessioneventprocessor.cpp;h=fd8a97c5da01e19eccb687b36226ac7cff383e63;hp=ade8c3bdf132687bc38a6849bb65f47b30b13b43;hb=bd3c5592e03480b17087abe44ae96048e0ab2e74;hpb=f4bccff9c485c977ff027954497b3c4c397ffa1a diff --git a/src/core/coresessioneventprocessor.cpp b/src/core/coresessioneventprocessor.cpp index ade8c3bd..fd8a97c5 100644 --- a/src/core/coresessioneventprocessor.cpp +++ b/src/core/coresessioneventprocessor.cpp @@ -277,6 +277,23 @@ void CoreSessionEventProcessor::processIrcEventAway(IrcEvent *e) } } +/* IRCv3 chghost - ":nick!user@host CHGHOST newuser new.host.goes.here" */ +void CoreSessionEventProcessor::processIrcEventChghost(IrcEvent *e) +{ + if (!checkParamCount(e, 2)) + return; + + IrcUser *ircuser = e->network()->updateNickFromMask(e->prefix()); + if (ircuser) { + // Update with new user/hostname information. setUser/setHost handles checking what + // actually changed. + ircuser->setUser(e->params().at(0)); + ircuser->setHost(e->params().at(1)); + } else { + qDebug() << "Received chghost data for unknown user" << e->prefix(); + } +} + void CoreSessionEventProcessor::processIrcEventInvite(IrcEvent *e) { if (checkParamCount(e, 2)) {