Software / code / prosody-modules
Comparison
mod_sasl2/mod_sasl2.lua @ 6136:8da64ecdbcaa
mod_sasl2: add usable sasl mechanisms to session table
This is needed to fix the SSDP bug described here:
https://issues.prosody.im/1845
| author | tmolitor <thilo@eightysoft.de> |
|---|---|
| date | Wed, 20 Nov 2024 05:05:30 +0100 |
| parent | 6056:56fa3bad16cc |
| child | 6139:ce755c661036 |
comparison
equal
deleted
inserted
replaced
| 6056:56fa3bad16cc | 6136:8da64ecdbcaa |
|---|---|
| 84 end | 84 end |
| 85 end | 85 end |
| 86 | 86 |
| 87 local mechanisms = st.stanza("authentication", { xmlns = xmlns_sasl2 }); | 87 local mechanisms = st.stanza("authentication", { xmlns = xmlns_sasl2 }); |
| 88 | 88 |
| 89 origin.usable_mechanisms = set.new(); | |
| 89 local available_mechanisms = sasl_handler:mechanisms() | 90 local available_mechanisms = sasl_handler:mechanisms() |
| 90 for mechanism in pairs(available_mechanisms) do | 91 for mechanism in pairs(available_mechanisms) do |
| 91 if disabled_mechanisms:contains(mechanism) then | 92 if disabled_mechanisms:contains(mechanism) then |
| 92 log("debug", "Not offering disabled mechanism %s", mechanism); | 93 log("debug", "Not offering disabled mechanism %s", mechanism); |
| 93 elseif not origin.secure and insecure_mechanisms:contains(mechanism) then | 94 elseif not origin.secure and insecure_mechanisms:contains(mechanism) then |
| 94 log("debug", "Not offering mechanism %s on insecure connection", mechanism); | 95 log("debug", "Not offering mechanism %s on insecure connection", mechanism); |
| 95 else | 96 else |
| 96 log("debug", "Offering mechanism %s", mechanism); | 97 log("debug", "Offering mechanism %s", mechanism); |
| 97 mechanisms:text_tag("mechanism", mechanism); | 98 mechanisms:text_tag("mechanism", mechanism); |
| 99 origin.usable_mechanisms:add(mechanism); | |
| 98 end | 100 end |
| 99 end | 101 end |
| 100 | 102 |
| 101 features:add_direct_child(mechanisms); | 103 features:add_direct_child(mechanisms); |
| 102 | 104 |