aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/mod_saslauth.lua9
1 files changed, 7 insertions, 2 deletions
diff --git a/plugins/mod_saslauth.lua b/plugins/mod_saslauth.lua
index 9a7c4f97..f27d8060 100644
--- a/plugins/mod_saslauth.lua
+++ b/plugins/mod_saslauth.lua
@@ -41,7 +41,7 @@ local function build_reply(status, ret, err_msg)
log("debug", "%s", ret or "");
reply:text(base64.encode(ret or ""));
else
- error("Unknown sasl status: "..status);
+ module:log("error", "Unknown sasl status: %s", status);
end
return reply;
end
@@ -50,7 +50,12 @@ local function handle_status(session, status)
if status == "failure" then
session.sasl_handler = nil;
elseif status == "success" then
- if not session.sasl_handler.username then error("SASL succeeded but we didn't get a username!"); end -- TODO move this to sessionmanager
+ if not session.sasl_handler.username then -- TODO move this to sessionmanager
+ module:log("warn", "SASL succeeded but we didn't get a username!");
+ session.sasl_handler = nil;
+ session:reset_stream();
+ return;
+ end
sm_make_authenticated(session, session.sasl_handler.username);
session.sasl_handler = nil;
session:reset_stream();