Software /
code /
prosody
Diff
plugins/mod_saslauth.lua @ 4395:d322c4553f97
mod_saslauth: Never send empty <mechanisms/>, for real this time.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Thu, 13 Oct 2011 00:24:09 +0500 |
parent | 4392:d2a7a44d68c5 |
child | 4492:0a4781f165e3 |
line wrap: on
line diff
--- a/plugins/mod_saslauth.lua Thu Oct 13 00:13:49 2011 +0500 +++ b/plugins/mod_saslauth.lua Thu Oct 13 00:24:09 2011 +0500 @@ -248,15 +248,13 @@ return; end origin.sasl_handler = usermanager_get_sasl_handler(module.host); - local mechanisms = origin.sasl_handler:mechanisms(); - if not next(mechanisms) then return; end - features:tag("mechanisms", mechanisms_attr); - for mechanism in pairs(mechanisms) do + local mechanisms = st.stanza("mechanisms", mechanisms_attr); + for mechanism in pairs(origin.sasl_handler:mechanisms()) do if mechanism ~= "PLAIN" or origin.secure or allow_unencrypted_plain_auth then - features:tag("mechanism"):text(mechanism):up(); + mechanisms:tag("mechanism"):text(mechanism):up(); end end - features:up(); + if mechanisms[1] then features:add_child(mechanisms); end else features:tag("bind", bind_attr):tag("required"):up():up(); features:tag("session", xmpp_session_attr):tag("optional"):up():up();