mirror of
https://github.com/jlu5/PyLink.git
synced 2025-02-09 11:04:08 +01:00
ircs2s_common: only read sender prefixes on lines starting with ":"
This fixes incorrect behaviour if the nick of a sender matches that of a S2S command (e.g. "ping")
This commit is contained in:
parent
da7f9611bc
commit
8db238e869
@ -310,19 +310,18 @@ class IRCS2SProtocol(IRCCommonProtocol):
|
|||||||
args = self.parse_args(data)
|
args = self.parse_args(data)
|
||||||
|
|
||||||
sender = args[0]
|
sender = args[0]
|
||||||
sender = sender.lstrip(':')
|
if sender.startswith(':'):
|
||||||
|
sender = sender[1:]
|
||||||
|
|
||||||
# If the sender isn't in numeric format, try to convert it automatically.
|
# If the sender isn't in numeric format, try to convert it automatically.
|
||||||
sender_sid = self._get_SID(sender)
|
sender_sid = self._get_SID(sender)
|
||||||
sender_uid = self._get_UID(sender)
|
sender_uid = self._get_UID(sender)
|
||||||
|
|
||||||
if sender_sid in self.servers:
|
if sender_sid in self.servers:
|
||||||
# Sender is a server (converting from name to SID gave a valid result).
|
sender = sender_sid
|
||||||
sender = sender_sid
|
elif sender_uid in self.users:
|
||||||
elif sender_uid in self.users:
|
sender = sender_uid
|
||||||
# Sender is a user (converting from name to UID gave a valid result).
|
else:
|
||||||
sender = sender_uid
|
|
||||||
elif not (args[0].startswith(':')):
|
|
||||||
# No sender prefix; treat as coming from uplink IRCd.
|
# No sender prefix; treat as coming from uplink IRCd.
|
||||||
sender = self.uplink
|
sender = self.uplink
|
||||||
args.insert(0, sender)
|
args.insert(0, sender)
|
||||||
|
Loading…
Reference in New Issue
Block a user