aboutsummaryrefslogtreecommitdiff
path: root/modules/ircv3_sasl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ircv3_sasl')
-rw-r--r--modules/ircv3_sasl/__init__.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/modules/ircv3_sasl/__init__.py b/modules/ircv3_sasl/__init__.py
index 5eb704f7..40f5afc0 100644
--- a/modules/ircv3_sasl/__init__.py
+++ b/modules/ircv3_sasl/__init__.py
@@ -12,10 +12,17 @@ USERPASS_MECHANISMS = [
"SCRAM-SHA-1",
"PLAIN"
]
+ALL_MECHANISMS = USERPASS_MECHANISMS+["EXTERNAL"]
def _parse(value):
mechanism, _, arguments = value.partition(" ")
- return {"mechanism": mechanism.upper(), "args": arguments}
+ mechanism = mechanism.upper()
+
+ if mechanism in ALL_MECHANISMS:
+ return {"mechanism": mechanism.upper(), "args": arguments}
+ else:
+ raise utils.SettingParseException("Unknown SASL mechanism '%s'"
+ % mechanism)
HARDFAIL = utils.BoolSetting("sasl-hard-fail",
"Set whether a SASL failure should cause a disconnect")