summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-07-16 06:52:13 -0400
committerAdam <Adam@anope.org>2011-07-16 06:52:13 -0400
commitacceabe3a88640b7192795b4e54126ed96e9d0f0 (patch)
treef2a092f55c6f84d049261be355658847e78039ca /src
parentc3993b3123feb0e508d5ea00bde052acd6a5423a (diff)
Bug #1287 - Only check if users should be deopped on syncing channels
when the user is on a server that is also syncing. This prevents us from deopping all users who join a new channel when recovering from a netsplit that don't explicitly have access to that channel.
Diffstat (limited to 'src')
-rw-r--r--src/channels.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 26ae18308..fe97c5b46 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -1100,7 +1100,7 @@ void chan_set_correct_modes(User *user, Channel *c, int give_modes)
c->SetMode(NULL, CMODE_VOICE, user->nick);
}
/* If this channel has secureops or the channel is syncing and they are not ulined, check to remove modes */
- if ((ci->HasFlag(CI_SECUREOPS) || c->HasFlag(CH_SYNCING)) && !user->server->IsULined())
+ if ((ci->HasFlag(CI_SECUREOPS) || (c->HasFlag(CH_SYNCING) && user->server->IsSynced())) && !user->server->IsULined())
{
if (owner && c->HasUserStatus(user, CMODE_OWNER) && !check_access(user, ci, CA_FOUNDER))
c->RemoveMode(NULL, CMODE_OWNER, user->nick);