Don't just listen for 'sasl=PLAIN' in IRCv3 CAP 3.2
This commit is contained in:
parent
c3482e78ba
commit
d522997992
1 changed files with 11 additions and 6 deletions
|
@ -20,13 +20,18 @@ class Module(object):
|
||||||
|
|
||||||
def on_cap(self, event):
|
def on_cap(self, event):
|
||||||
has_sasl = "sasl" in event["capabilities"]
|
has_sasl = "sasl" in event["capabilities"]
|
||||||
has_mechanisms = has_sasl and not event["capabilities"]["sasl"
|
our_sasl = event["server"].get_setting("sasl", None)
|
||||||
] == None
|
|
||||||
has_plaintext = has_mechanisms and "PLAIN" in event["capabilities"
|
|
||||||
]["sasl"].split(",")
|
|
||||||
|
|
||||||
if has_sasl and (has_plaintext or not has_mechanisms) and event[
|
do_sasl = False
|
||||||
"server"].get_setting("sasl", None):
|
if has_sasl and our_sasl:
|
||||||
|
if not event["capabilities"]["sasl"] == None:
|
||||||
|
our_mechanism = our_sasl["mechanism"].upper()
|
||||||
|
do_sasl = our_mechanism in event["capabilities"
|
||||||
|
]["sasl"].split(",")
|
||||||
|
else:
|
||||||
|
do_sasl = False
|
||||||
|
|
||||||
|
if do_sasl:
|
||||||
event["server"].queue_capability("sasl")
|
event["server"].queue_capability("sasl")
|
||||||
|
|
||||||
def on_cap_ack(self, event):
|
def on_cap_ack(self, event):
|
||||||
|
|
Loading…
Reference in a new issue