diff options
| author | 2018-09-03 11:14:27 +0100 | |
|---|---|---|
| committer | 2018-09-03 11:14:52 +0100 | |
| commit | 29851d4305bb4a3278260ef3530cd2558f360944 (patch) | |
| tree | 8a3ddbf168439245cc152492ff8286b41ee557db /modules | |
| parent | Add greeting.py (diff) | |
| signature | ||
Make CAP functionality more part of the framework and support message-tags and
multi-prefix
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/sasl.py | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/modules/sasl.py b/modules/sasl.py index 15a7523a..a5092615 100644 --- a/modules/sasl.py +++ b/modules/sasl.py @@ -4,10 +4,9 @@ class Module(object): def __init__(self, bot, events, exports): self.bot = bot events.on("preprocess.connect").hook(self.preprocess_connect) - events.on("received.cap").hook(self.on_cap) + events.on("received.cap.ls").hook(self.on_cap) + events.on("received.cap.ack").hook(self.on_cap_ack) events.on("received.authenticate").hook(self.on_authenticate) - events.on("received.numeric").on( - "902", "903", "904", "905", "906", "907", "908").hook(self.on_90x) def preprocess_connect(self, event): sasl = event["server"].get_setting("sasl") @@ -15,13 +14,12 @@ class Module(object): event["server"].send_capability_request("sasl") def on_cap(self, event): - if event["subcommand"] == "NAK": - event["server"].send_capability_end() - elif event["subcommand"] == "ACK": - if not "sasl" in event["capabilities"]: - event["server"].send_capability_end() - else: - event["server"].send_authenticate("PLAIN") + if "sasl" in event["capabilities"]: + event["server"].queue_capability("sasl") + def on_cap_ack(self, event): + if "sasl" in event["capabilities"]: + event["server"].send_authenticate("PLAIN") + event["server"].wait_for_capability("sasl") def on_authenticate(self, event): if event["message"] != "+": @@ -33,7 +31,4 @@ class Module(object): auth_text = base64.b64encode(auth_text.encode("utf8")) auth_text = auth_text.decode("utf8") event["server"].send_authenticate(auth_text) - - def on_90x(self, event): - event["server"].send_capability_end() - + event["server"].capability_done("sasl") |
