diff options
author | Adam <Adam@anope.org> | 2012-10-31 13:14:13 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-10-31 13:14:13 -0400 |
commit | c7a5cc0a98923192420eadc946a3d53bd0b5bdcc (patch) | |
tree | 223bbd1b5baaae364c2fd0c32b60a9b64597d1a8 /src | |
parent | 504caa8ca9fd28cce112c929b523a6263e563f18 (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
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.cpp | 4 |
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'))) { /* |