Mercurial > prosody-modules
comparison mod_smacks/mod_smacks.lua @ 589:57ac609444c4
mod_smacks: Only advertise stream features when a stream is authenticated, and doesn't already have smacks enabled
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 01 Feb 2012 23:27:23 +0000 |
| parents | 8042558336b6 |
| children | 40b707d7a809 |
comparison
equal
deleted
inserted
replaced
| 588:8042558336b6 | 589:57ac609444c4 |
|---|---|
| 19 | 19 |
| 20 local session_registry = {}; | 20 local session_registry = {}; |
| 21 | 21 |
| 22 module:hook("stream-features", | 22 module:hook("stream-features", |
| 23 function (event) | 23 function (event) |
| 24 event.features:tag("sm", sm_attr):tag("optional"):up():up(); | 24 local origin = event.origin; |
| 25 if not(origin.smacks) and origin.type == "c2s" then | |
| 26 event.features:tag("sm", sm_attr):tag("optional"):up():up(); | |
| 27 end | |
| 25 end); | 28 end); |
| 26 | 29 |
| 27 module:hook("s2s-stream-features", | 30 module:hook("s2s-stream-features", |
| 28 function (event) | 31 function (event) |
| 29 local origin = event.origin; | 32 local origin = event.origin; |
| 30 if s2s_smacks and (origin.type == "s2sin" or origin.type == "s2sout") then | 33 if s2s_smacks and not(origin.smacks) and (origin.type == "s2sin" or origin.type == "s2sout") then |
| 31 event.features:tag("sm", sm_attr):tag("optional"):up():up(); | 34 event.features:tag("sm", sm_attr):tag("optional"):up():up(); |
| 32 end | 35 end |
| 33 end); | 36 end); |
| 34 | 37 |
| 35 module:hook_stanza("http://etherx.jabber.org/streams", "features", | 38 module:hook_stanza("http://etherx.jabber.org/streams", "features", |
