3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-24 03:29:28 +01:00

ts6: handle ChatIRCd ENCAP USERMODE

Per https://github.com/ChatLounge/ChatIRCd/blob/master/doc/technical/ChatIRCd-extra.txt
This commit is contained in:
James Lu 2017-08-11 12:15:05 -07:00
parent 4ec1727888
commit 785fc8d2d2

View File

@ -18,13 +18,18 @@ class TS6Protocol(TS6BaseProtocol):
self.protocol_caps |= {'slash-in-hosts'}
self.casemapping = 'rfc1459'
self.hook_map = {'SJOIN': 'JOIN', 'TB': 'TOPIC', 'TMODE': 'MODE', 'BMASK': 'MODE',
'EUID': 'UID', 'RSFNC': 'SVSNICK', 'ETB': 'TOPIC'}
'EUID': 'UID', 'RSFNC': 'SVSNICK', 'ETB': 'TOPIC', 'USERMODE': 'MODE'}
# Track whether we've received end-of-burst from the uplink.
self.has_eob = False
self.required_caps = {'EUID', 'SAVE', 'TB', 'ENCAP', 'QS', 'CHW'}
# From ChatIRCd: https://github.com/ChatLounge/ChatIRCd/blob/master/doc/technical/ChatIRCd-extra.txt
# Our command handler rewrites ENCAP so that this is the exact same syntax as MODE.
# <- :101AAAAAB ENCAP test.hub2 USERMODE 111AAAAAB :+Qw
self.handle_usermode = self.handle_mode
### OUTGOING COMMANDS
def spawn_client(self, nick, ident='null', host='null', realhost=None, modes=set(),