projects
/
quassel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2f4a721
)
Don't create zombie users
author
Sebastian Goth
<seezer@roath.org>
Wed, 20 Jan 2010 17:49:40 +0000
(18:49 +0100)
committer
Manuel Nickschas
<sputnick@quassel-irc.org>
Sun, 31 Jan 2010 19:45:03 +0000
(20:45 +0100)
src/core/ircserverhandler.cpp
patch
|
blob
|
history
diff --git
a/src/core/ircserverhandler.cpp
b/src/core/ircserverhandler.cpp
index
33445c2
..
992d486
100644
(file)
--- a/
src/core/ircserverhandler.cpp
+++ b/
src/core/ircserverhandler.cpp
@@
-1077,17
+1077,20
@@
void IrcServerHandler::handleNetsplitJoin(const QString &channel, const QStringL
}
QList<IrcUser *> ircUsers;
QStringList newModes = modes;
}
QList<IrcUser *> ircUsers;
QStringList newModes = modes;
+ QStringList newUsers = users;
foreach(QString user, users) {
foreach(QString user, users) {
- IrcUser *iu = network()->
updateNickFromMask(user
);
+ IrcUser *iu = network()->
ircUser(nickFromMask(user)
);
if(iu)
ircUsers.append(iu);
if(iu)
ircUsers.append(iu);
- else {
- newModes.removeAt(users.indexOf(user));
+ else { // the user already quit
+ int idx = users.indexOf(user);
+ newUsers.removeAt(idx);
+ newModes.removeAt(idx);
}
}
}
}
- QString msg =
u
sers.join("#:#").append("#:#").append(quitMessage);
+ QString msg =
newU
sers.join("#:#").append("#:#").append(quitMessage);
emit displayMsg(Message::NetsplitJoin, BufferInfo::ChannelBuffer, channel, msg);
ircChannel->joinIrcUsers(ircUsers, newModes);
}
emit displayMsg(Message::NetsplitJoin, BufferInfo::ChannelBuffer, channel, msg);
ircChannel->joinIrcUsers(ircUsers, newModes);
}