mirror of
https://github.com/jlu5/PyLink.git
synced 2024-12-25 04:02:45 +01:00
nefarious: fix usermode changes internally applying on the wrong target
A regression from fca23c7d55
overwrote the target UID with a nick before passing it into applyModes(), which raises an "unknown mode target" warning and causes the mode change to be dropped.
This commit is contained in:
parent
97d09c5015
commit
af21063834
@ -413,10 +413,11 @@ class P10Protocol(IRCS2SProtocol):
|
|||||||
if numeric not in self.irc.servers and (not cobj.isOp(numeric)) and (not cobj.isHalfop(numeric)):
|
if numeric not in self.irc.servers and (not cobj.isOp(numeric)) and (not cobj.isHalfop(numeric)):
|
||||||
numeric = self.irc.getServer(numeric)
|
numeric = self.irc.getServer(numeric)
|
||||||
|
|
||||||
|
real_target = target
|
||||||
else:
|
else:
|
||||||
assert target in self.irc.users, "Unknown mode target %s" % target
|
assert target in self.irc.users, "Unknown mode target %s" % target
|
||||||
# P10 uses nicks in user MODE targets, NOT UIDs. ~GL
|
# P10 uses nicks in user MODE targets, NOT UIDs. ~GL
|
||||||
target = self.irc.users[target].nick
|
real_target = self.irc.users[target].nick
|
||||||
send_ts = False
|
send_ts = False
|
||||||
|
|
||||||
self.irc.applyModes(target, modes)
|
self.irc.applyModes(target, modes)
|
||||||
@ -424,7 +425,7 @@ class P10Protocol(IRCS2SProtocol):
|
|||||||
while modes[:12]:
|
while modes[:12]:
|
||||||
joinedmodes = self.irc.joinModes([m for m in modes[:12]])
|
joinedmodes = self.irc.joinModes([m for m in modes[:12]])
|
||||||
modes = modes[12:]
|
modes = modes[12:]
|
||||||
self._send(numeric, 'M %s %s%s' % (target, joinedmodes, ' %s' % ts if send_ts else ''))
|
self._send(numeric, 'M %s %s%s' % (real_target, joinedmodes, ' %s' % ts if send_ts else ''))
|
||||||
|
|
||||||
def nick(self, numeric, newnick):
|
def nick(self, numeric, newnick):
|
||||||
"""Changes the nick of a PyLink client."""
|
"""Changes the nick of a PyLink client."""
|
||||||
|
Loading…
Reference in New Issue
Block a user