mod_smacks/mod_smacks.lua
changeset 1531 7d86fc477993
parent 1530 fb7cd669f41b
child 1539 05fa54404012
equal deleted inserted replaced
1530:fb7cd669f41b 1531:7d86fc477993
   154 module:hook_stanza(xmlns_sm2, "enable", function (session, stanza) return handle_enable(session, stanza, xmlns_sm2); end, 100);
   154 module:hook_stanza(xmlns_sm2, "enable", function (session, stanza) return handle_enable(session, stanza, xmlns_sm2); end, 100);
   155 module:hook_stanza(xmlns_sm3, "enable", function (session, stanza) return handle_enable(session, stanza, xmlns_sm3); end, 100);
   155 module:hook_stanza(xmlns_sm3, "enable", function (session, stanza) return handle_enable(session, stanza, xmlns_sm3); end, 100);
   156 
   156 
   157 module:hook_stanza("http://etherx.jabber.org/streams", "features",
   157 module:hook_stanza("http://etherx.jabber.org/streams", "features",
   158 		function (session, stanza)
   158 		function (session, stanza)
   159 			if can_do_smacks(session) then
   159 			module:add_timer(0, function ()
   160 				if stanza:get_child("sm", xmlns_sm3) then
   160 				if can_do_smacks(session) then
   161 					session.sends2s(st.stanza("enable", sm3_attr));
   161 					if stanza:get_child("sm", xmlns_sm3) then
   162 					session.smacks = xmlns_sm3;
   162 						session.sends2s(st.stanza("enable", sm3_attr));
   163 				elseif stanza:get_child("sm", xmlns_sm2) then
   163 						session.smacks = xmlns_sm3;
   164 					session.sends2s(st.stanza("enable", sm2_attr));
   164 					elseif stanza:get_child("sm", xmlns_sm2) then
   165 					session.smacks = xmlns_sm2;
   165 						session.sends2s(st.stanza("enable", sm2_attr));
   166 				else
   166 						session.smacks = xmlns_sm2;
   167 					return;
   167 					else
       
   168 						return;
       
   169 					end
       
   170 					wrap_session_out(session, false);
   168 				end
   171 				end
   169 				wrap_session_out(session, false);
   172 			end);
   170 			end
       
   171 		end);
   173 		end);
   172 
   174 
   173 function handle_enabled(session, stanza, xmlns_sm)
   175 function handle_enabled(session, stanza, xmlns_sm)
   174 	module:log("debug", "Enabling stream management");
   176 	module:log("debug", "Enabling stream management");
   175 	session.smacks = xmlns_sm;
   177 	session.smacks = xmlns_sm;