Mercurial > prosody-modules
comparison mod_sasl2/mod_sasl2.lua @ 5049:e89aad13a52a
mod_sasl2: Further break up success handling, into pre/post stream:features
This allows us to enable mod_smacks after sending success, but before sending
stream:features. Previously, the features were being calculated before SM was
finalized on the session.
We can't finalize SM before sending <success> because it may generate stanzas.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 22 Sep 2022 18:25:44 +0100 |
parents | 3697d19d5fd9 |
children | 53145c6b6b0b |
comparison
equal
deleted
inserted
replaced
5048:3697d19d5fd9 | 5049:e89aad13a52a |
---|---|
156 | 156 |
157 module:hook("sasl2/c2s/success", function (event) | 157 module:hook("sasl2/c2s/success", function (event) |
158 local session = event.session | 158 local session = event.session |
159 event.success:text_tag("authorization-identifier", jid_join(session.username, session.host, session.resource)); | 159 event.success:text_tag("authorization-identifier", jid_join(session.username, session.host, session.resource)); |
160 session.send(event.success); | 160 session.send(event.success); |
161 end, -1000); | |
162 | |
163 module:hook("sasl2/c2s/success", function (event) | |
164 local session = event.session; | |
161 local features = st.stanza("stream:features"); | 165 local features = st.stanza("stream:features"); |
162 module:fire_event("stream-features", { origin = session, features = features }); | 166 module:fire_event("stream-features", { origin = session, features = features }); |
163 session.send(features); | 167 session.send(features); |
164 end, -1000); | 168 end, -1500); |
165 | 169 |
166 -- The gap here is to allow modules to do stuff to the stream after the stanza | 170 -- The gap here is to allow modules to do stuff to the stream after the stanza |
167 -- is sent, but before we proceed with anything else. This is expected to be | 171 -- is sent, but before we proceed with anything else. This is expected to be |
168 -- a common pattern with SASL2, which allows atomic negotiation of a bunch of | 172 -- a common pattern with SASL2, which allows atomic negotiation of a bunch of |
169 -- stream features. | 173 -- stream features. |