From 80bebe38271d96263342c20e32844dd65b86e3bb Mon Sep 17 00:00:00 2001 From: James Lu Date: Wed, 26 Aug 2015 14:30:35 -0700 Subject: [PATCH] protocols: also validate TS on incoming SJOIN --- protocols/inspircd.py | 3 ++- protocols/ts6.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/protocols/inspircd.py b/protocols/inspircd.py index ccf77de..3e8adf7 100644 --- a/protocols/inspircd.py +++ b/protocols/inspircd.py @@ -407,7 +407,8 @@ def handle_fjoin(irc, servernumeric, command, args): modeprefix, user = user.split(',', 1) namelist.append(user) irc.users[user].channels.add(channel) - utils.applyModes(irc, channel, [('+%s' % mode, user) for mode in modeprefix]) + if their_ts <= our_ts: + utils.applyModes(irc, channel, [('+%s' % mode, user) for mode in modeprefix]) irc.channels[channel].users.add(user) return {'channel': channel, 'users': namelist, 'modes': parsedmodes, 'ts': their_ts} diff --git a/protocols/ts6.py b/protocols/ts6.py index 74da592..f0a06f3 100644 --- a/protocols/ts6.py +++ b/protocols/ts6.py @@ -422,7 +422,8 @@ def handle_sjoin(irc, servernumeric, command, args): finalprefix += char namelist.append(user) irc.users[user].channels.add(channel) - utils.applyModes(irc, channel, [('+%s' % mode, user) for mode in finalprefix]) + if their_ts <= our_ts: + utils.applyModes(irc, channel, [('+%s' % mode, user) for mode in finalprefix]) irc.channels[channel].users.add(user) return {'channel': channel, 'users': namelist, 'modes': parsedmodes, 'ts': their_ts}