aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-03 11:18:20 +0100
committerGravatar jesopo2018-09-03 11:18:20 +0100
commit0f578b1ec1886eb4f40cf71db23253466ae28e59 (patch)
tree53fc632d82f609a969f128f65dffbc2d08b806f6
parentMake CAP functionality more part of the framework and support message-tags and (diff)
signature
Send CAP END when we're not waiting for any capability handshakes
-rw-r--r--IRCLineHandler.py3
-rw-r--r--IRCServer.py2
2 files changed, 5 insertions, 0 deletions
diff --git a/IRCLineHandler.py b/IRCLineHandler.py
index d8958795..b995a0af 100644
--- a/IRCLineHandler.py
+++ b/IRCLineHandler.py
@@ -267,6 +267,9 @@ class LineHandler(object):
event["server"].send_capability_queue()
else:
event["server"].send_capability_end()
+ elif subcommand == "ack" or subcommand == "nack":
+ if not event["server"].waiting_for_capabilities():
+ event["server"].send_capability_end()
# the server is asking for authentication
def authenticate(self, event):
diff --git a/IRCServer.py b/IRCServer.py
index 9cb5e18f..1d30e1f9 100644
--- a/IRCServer.py
+++ b/IRCServer.py
@@ -293,6 +293,8 @@ class Server(object):
def send_authenticate(self, text):
self.send("AUTHENTICATE %s" % text)
+ def waiting_for_capabilities(self):
+ return bool(len(self._capabilities_waiting))
def wait_for_capability(self, capability):
self._capabilities_waiting.add(capability)
def capability_done(self, capability):