From acceabe3a88640b7192795b4e54126ed96e9d0f0 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 Jul 2011 06:52:13 -0400 Subject: [PATCH] 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. --- src/channels.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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);