mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-30 14:49:28 +01:00
hybrid: only call endburst once per connection
Since this is based off TS6, both initial PING and EOB are handled as endburst. However, ENDBURST should only be called once per session, or things are respawned automatically and nick collisions happen.
This commit is contained in:
parent
3930891e9f
commit
2864c41d7a
@ -19,11 +19,12 @@ class HybridProtocol(TS6Protocol):
|
||||
self.casemapping = 'ascii'
|
||||
self.caps = {}
|
||||
self.hook_map = {'EOB': 'ENDBURST', 'TBURST': 'TOPIC', 'SJOIN': 'JOIN'}
|
||||
self.has_eob = False
|
||||
|
||||
def connect(self):
|
||||
"""Initializes a connection to a server."""
|
||||
ts = self.irc.start_ts
|
||||
|
||||
self.has_eob = False
|
||||
f = self.irc.send
|
||||
|
||||
# https://github.com/grawity/irc-docs/blob/master/server/ts6.txt#L80
|
||||
@ -210,8 +211,11 @@ class HybridProtocol(TS6Protocol):
|
||||
|
||||
def handle_eob(self, numeric, command, args):
|
||||
log.debug('(%s) end of burst received', self.irc.name)
|
||||
if not self.has_eob: # Only call ENDBURST hooks if we haven't already.
|
||||
return {}
|
||||
|
||||
self.has_eob = True
|
||||
|
||||
def handle_svsmode(self, numeric, command, args):
|
||||
"""
|
||||
Handles SVSMODE, which is used for sending services metadata
|
||||
|
Loading…
Reference in New Issue
Block a user