summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-10-31 13:14:13 -0400
committerAdam <Adam@anope.org>2012-10-31 13:14:13 -0400
commitc7a5cc0a98923192420eadc946a3d53bd0b5bdcc (patch)
tree223bbd1b5baaae364c2fd0c32b60a9b64597d1a8
parent504caa8ca9fd28cce112c929b523a6263e563f18 (diff)
Don't send quitting users in RPL_NAMREPLY, fixes desyncing clients who join a channel after a user has quit but before they are culled
-rw-r--r--src/channels.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 883ae3954..672d46ea9 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -718,7 +718,7 @@ int Channel::CountInvisible()
int count = 0;
for (UserMembIter i = userlist.begin(); i != userlist.end(); i++)
{
- if (!(i->first->IsModeSet('i')))
+ if (!i->first->quitting && !i->first->IsModeSet('i'))
count++;
}
@@ -793,6 +793,8 @@ void Channel::UserList(User *user)
for (UserMembIter i = userlist.begin(); i != userlist.end(); i++)
{
+ if (i->first->quitting)
+ continue;
if ((!has_user) && (i->first->IsModeSet('i')))
{
/*