diff options
| author | 2019-05-11 18:22:40 +0100 | |
|---|---|---|
| committer | 2019-05-11 18:22:40 +0100 | |
| commit | d291cd506373046d703450bc9d97082b89cbe8be (patch) | |
| tree | 41a80e2c54f041d0bc550e9201c5119a6aab14f6 /modules/sasl | |
| parent | Change ducks-min-message default to 100 (diff) | |
Revamp how CAPs are tracked through REQ and ACK/NAK etc
Diffstat (limited to 'modules/sasl')
| -rw-r--r-- | modules/sasl/__init__.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/modules/sasl/__init__.py b/modules/sasl/__init__.py index f6292d4a..b0635b4d 100644 --- a/modules/sasl/__init__.py +++ b/modules/sasl/__init__.py @@ -41,22 +41,22 @@ class Module(ModuleManager.BaseModule): do_sasl = True if do_sasl: - event["server"].queue_capability("sasl") + cap = utils.irc.Capability("sasl") + cap.on_ack(lambda: self._sasl_ack(event["server"])) + return cap - @utils.hook("received.cap.ack") - def on_cap_ack(self, event): - if "sasl" in event["capabilities"]: - sasl = event["server"].get_setting("sasl") - mechanism = sasl["mechanism"].upper() - if mechanism == "USERPASS": - server_mechanisms = event["server"].server_capabilities["sasl"] - server_mechanisms = server_mechanisms or [ - USERPASS_MECHANISMS[0]] - mechanism = self._best_userpass_mechanism(server_mechanisms) + def _sasl_ack(self, server): + sasl = server.get_setting("sasl") + mechanism = sasl["mechanism"].upper() + if mechanism == "USERPASS": + server_mechanisms = server.server_capabilities["sasl"] + server_mechanisms = server_mechanisms or [ + USERPASS_MECHANISMS[0]] + mechanism = self._best_userpass_mechanism(server_mechanisms) - event["server"].send_authenticate(mechanism) - event["server"].sasl_mechanism = mechanism - event["server"].wait_for_capability("sasl") + server.send_authenticate(mechanism) + server.sasl_mechanism = mechanism + server.wait_for_capability("sasl") @utils.hook("received.authenticate") def on_authenticate(self, event): |
