1
0
mirror of https://github.com/anope/anope.git synced 2026-06-27 13:16:38 +02:00

Use channel mode +r to determine if a channel has either been newly created or

created while we were offline (eg, during the inital burst to the
uplink). Fixes not knowing whether or not channels ops in non-secureop
non-persistent channels obtained op while we were offline by creating
the channel or legitimately by being set op by another channel op.
This commit is contained in:
Adam
2013-02-07 21:44:37 -05:00
parent 9d1fe6102c
commit 01413dd3cc
2 changed files with 12 additions and 4 deletions
+4 -1
View File
@@ -107,7 +107,10 @@ void Join::SJoin(MessageSource &source, const Anope::string &chan, time_t ts, co
/* Update the modes for the channel */
if (keep_their_modes && !modes.empty())
c->SetModesInternal(source, modes);
/* If we are syncing, mlock is checked later in Channel::Sync. It is important to not check it here
* so that Channel::SetCorrectModes can correctly detect the presence of channel mode +r.
*/
c->SetModesInternal(source, modes, ts, !c->HasExt("SYNCING"));
for (std::list<SJoinUser>::const_iterator it = users.begin(), it_end = users.end(); it != it_end; ++it)
{