Software /
code /
prosody
Changeset
3553:1f0af8572f15
mod_saslauth: Allow restarting SASL negotiation from scratch.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Tue, 02 Nov 2010 22:23:07 +0500 |
parents | 3552:8ad09efc19cc |
children | 3554:1770f8aaf04a |
files | plugins/mod_saslauth.lua |
diffstat | 1 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_saslauth.lua Tue Nov 02 22:05:19 2010 +0500 +++ b/plugins/mod_saslauth.lua Tue Nov 02 22:23:07 2010 +0500 @@ -95,7 +95,16 @@ local session, stanza = event.origin, event.stanza; if session.type ~= "c2s_unauthed" then return; end - -- FIXME ignoring duplicates because ejabberd does + if session.sasl_handler and session.sasl_handler.selected then + session.sasl_handler = nil; -- allow starting a new SASL negotiation before completing an old one + end + if not session.sasl_handler then + if anonymous_login then + session.sasl_handler = new_sasl(module.host, anonymous_authentication_profile); + else + session.sasl_handler = usermanager_get_sasl_handler(module.host); + end + end local mechanism = stanza.attr.mechanism; if anonymous_login then if mechanism ~= "ANONYMOUS" then