aboutsummaryrefslogtreecommitdiff
path: root/modules/ircv3_sasl
diff options
context:
space:
mode:
authorGravatar jesopo2019-10-04 10:25:48 +0100
committerGravatar jesopo2019-10-04 10:25:48 +0100
commit3466a3c43e50cf6fc55636352b82eab3f407c7f3 (patch)
tree581634fbe538e4e0772f7eaacb0be01811ea559d /modules/ircv3_sasl
parentcheck that `third_words` isn't empty (diff)
signature
Allow utils.Setting_ parse functions to throw detailed errors
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")