Comparison

plugins/mod_presence.lua @ 7344:81efa212db1e

mod_presence: Construct a 'from' JID when roster items are removed outside of a session
author Kim Alvefur <zash@zash.se>
date Fri, 08 Apr 2016 16:35:23 +0200
parent 7332:ba32289e8d0b
child 7345:0c69305ab525
comparison
equal deleted inserted replaced
7342:79a5db780e8b 7344:81efa212db1e
362 local username = event.username; 362 local username = event.username;
363 local session = event.origin; 363 local session = event.origin;
364 local roster = event.roster or session and session.roster; 364 local roster = event.roster or session and session.roster;
365 local jid = event.jid; 365 local jid = event.jid;
366 local item = event.item; 366 local item = event.item;
367 local from_jid = origin.full_jid or (username .. "@" .. module.host);
367 368
368 local subscription = item and item.subscription or "none"; 369 local subscription = item and item.subscription or "none";
369 local ask = item and item.ask; 370 local ask = item and item.ask;
370 local pending = roster and roster[false].pending[jid]; 371 local pending = roster and roster[false].pending[jid];
371 372
372 if subscription == "both" or subscription == "from" or pending then 373 if subscription == "both" or subscription == "from" or pending then
373 core_post_stanza(session, st.presence({type="unsubscribed", from=session.full_jid, to=jid})); 374 core_post_stanza(session, st.presence({type="unsubscribed", from=from_jid, to=jid}));
374 end 375 end
375 376
376 if subscription == "both" or subscription == "to" or ask then 377 if subscription == "both" or subscription == "to" or ask then
377 send_presence_of_available_resources(username, module.host, jid, session, st.presence({type="unavailable"})); 378 send_presence_of_available_resources(username, module.host, jid, session, st.presence({type="unavailable"}));
378 core_post_stanza(session, st.presence({type="unsubscribe", from=session.full_jid, to=jid})); 379 core_post_stanza(session, st.presence({type="unsubscribe", from=from_jid, to=jid}));
379 end 380 end
380 381
381 end, -1); 382 end, -1);
382 383