mirror of
https://github.com/anope/anope.git
synced 2026-06-29 22:06:37 +02:00
OnJoinChannel can modify the ts for a channel, so update keep_their_modes in the sjoin handler before processing a user. Otherwise we can desync and think users have a channel status when they really don't.
This commit is contained in:
@@ -126,6 +126,7 @@ void Join::SJoin(MessageSource &source, const Anope::string &chan, time_t ts, co
|
||||
{
|
||||
const ChannelStatus &status = it->first;
|
||||
User *u = it->second;
|
||||
keep_their_modes = ts <= c->creation_time; // OnJoinChannel can call modules which can modify this channel's ts
|
||||
|
||||
/* Add the user to the channel */
|
||||
c->JoinUser(u, keep_their_modes ? &status : NULL);
|
||||
|
||||
Reference in New Issue
Block a user