From 5fa3d66a39dc22bff9a1d0345ebb70448b060e82 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 16 Jun 2019 15:33:20 +0100 Subject: Return all caps through received.cap.ls|new and check if valid in line_handler, remove server.cap_started --- src/IRCServer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/IRCServer.py b/src/IRCServer.py index 78d3ac09..17d0795c 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -35,7 +35,6 @@ class Server(IRCObject.Object): self.agreed_capabilities = set([]) # type: typing.Set[str] self.server_capabilities = {} # type: typing.Dict[str, str] self.batches = {} # type: typing.Dict[str, utils.irc.IRCBatch] - self.cap_started = False self.users = {} # type: typing.Dict[str, IRCUser.User] self.new_users = set([]) #type: typing.Set[IRCUser.User] @@ -323,9 +322,12 @@ class Server(IRCObject.Object): def wait_for_capability(self, capability: str): self._capabilities_waiting.add(capability) def capability_done(self, capability: str): - self._capabilities_waiting.discard(capability) - if self.cap_started and not self._capabilities_waiting: - self.send_capability_end() + if capability in self._capabilities_waiting: + self._capabilities_waiting.discard(capability) + if not self._capabilities_waiting: + self.send_capability_end() + def clear_waiting_capabilities(self): + self._capabilities_waiting.clear() def send_pass(self, password: str) -> typing.Optional[IRCLine.SentLine]: return self.send(utils.irc.protocol.password(password)) -- cgit v1.3.1-10-gc9f91