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",