Diff

plugins/mod_roster.lua @ 110:bb5ac5976a97

Fixed: Roster support
author Waqas Hussain <waqas20@gmail.com>
date Wed, 22 Oct 2008 21:20:07 +0500
parent 108:1d79da482c5d
child 114:bed2a8508cf5
line wrap: on
line diff
--- a/plugins/mod_roster.lua	Wed Oct 22 21:18:50 2008 +0500
+++ b/plugins/mod_roster.lua	Wed Oct 22 21:20:07 2008 +0500
@@ -6,6 +6,7 @@
 local t_concat = table.concat;
 
 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster;
+local rm_add_to_roster = require "core.rostermanager".add_to_roster;
 local rm_roster_push = require "core.rostermanager".roster_push;
 
 add_iq_handler("c2s", "jabber:iq:roster", 
@@ -15,15 +16,14 @@
 					local roster = st.reply(stanza)
 								:query("jabber:iq:roster");
 					for jid in pairs(session.roster) do
-						local item = st.stanza("item", {
+						roster:tag("item", {
 							jid = jid,
 							subscription = session.roster[jid].subscription,
 							name = session.roster[jid].name,
 						});
 						for group in pairs(session.roster[jid].groups) do
-							item:tag("group"):text(group):up();
+							roster:tag("group"):text(group):up();
 						end
-						roster:add_child(item);
 					end
 					send(session, roster);
 					return true;
@@ -52,7 +52,7 @@
 									local r_item = {name = item.attr.name, groups = {}};
 									if r_item.name == "" then r_item.name = nil; end
 									if session.roster[item.attr.jid] then
-										r_item.subscription = session.roster[item.attr.jid];
+										r_item.subscription = session.roster[item.attr.jid].subscription;
 									else
 										r_item.subscription = "none";
 									end