Software /
code /
prosody
Comparison
plugins/mod_roster.lua @ 299:300b5a201ad3
Fix mod_roster to use session.send for sending stanzas
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 15 Nov 2008 23:09:08 +0000 |
parent | 193:13ac34255c37 |
child | 326:99a8317d1235 |
comparison
equal
deleted
inserted
replaced
298:985710ea308b | 299:300b5a201ad3 |
---|---|
1 | 1 |
2 local st = require "util.stanza" | 2 local st = require "util.stanza" |
3 local send = require "core.sessionmanager".send_to_session | |
4 | 3 |
5 local jid_split = require "util.jid".split; | 4 local jid_split = require "util.jid".split; |
6 local t_concat = table.concat; | 5 local t_concat = table.concat; |
7 | 6 |
8 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster; | 7 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster; |
27 roster:tag("group"):text(group):up(); | 26 roster:tag("group"):text(group):up(); |
28 end | 27 end |
29 roster:up(); -- move out from item | 28 roster:up(); -- move out from item |
30 end | 29 end |
31 end | 30 end |
32 send(session, roster); | 31 session.send(roster); |
33 session.interested = true; -- resource is interested in roster updates | 32 session.interested = true; -- resource is interested in roster updates |
34 return true; | 33 return true; |
35 elseif stanza.attr.type == "set" then | 34 elseif stanza.attr.type == "set" then |
36 local query = stanza.tags[1]; | 35 local query = stanza.tags[1]; |
37 if #query.tags == 1 and query.tags[1].name == "item" | 36 if #query.tags == 1 and query.tags[1].name == "item" |
44 if item.attr.jid ~= from_node.."@"..from_host then | 43 if item.attr.jid ~= from_node.."@"..from_host then |
45 if item.attr.subscription == "remove" then | 44 if item.attr.subscription == "remove" then |
46 if session.roster[item.attr.jid] then | 45 if session.roster[item.attr.jid] then |
47 local success, err_type, err_cond, err_msg = rm_remove_from_roster(session, item.attr.jid); | 46 local success, err_type, err_cond, err_msg = rm_remove_from_roster(session, item.attr.jid); |
48 if success then | 47 if success then |
49 send(session, st.reply(stanza)); | 48 session.send(st.reply(stanza)); |
50 rm_roster_push(from_node, from_host, item.attr.jid); | 49 rm_roster_push(from_node, from_host, item.attr.jid); |
51 else | 50 else |
52 send(session, st.error_reply(stanza, err_type, err_cond, err_msg)); | 51 session.send(st.error_reply(stanza, err_type, err_cond, err_msg)); |
53 end | 52 end |
54 else | 53 else |
55 send(session, st.error_reply(stanza, "modify", "item-not-found")); | 54 session.send(st.error_reply(stanza, "modify", "item-not-found")); |
56 end | 55 end |
57 else | 56 else |
58 local r_item = {name = item.attr.name, groups = {}}; | 57 local r_item = {name = item.attr.name, groups = {}}; |
59 if r_item.name == "" then r_item.name = nil; end | 58 if r_item.name == "" then r_item.name = nil; end |
60 if session.roster[item.attr.jid] then | 59 if session.roster[item.attr.jid] then |
71 end | 70 end |
72 end | 71 end |
73 end | 72 end |
74 local success, err_type, err_cond, err_msg = rm_add_to_roster(session, item.attr.jid, r_item); | 73 local success, err_type, err_cond, err_msg = rm_add_to_roster(session, item.attr.jid, r_item); |
75 if success then | 74 if success then |
76 send(session, st.reply(stanza)); | 75 session.send(st.reply(stanza)); |
77 rm_roster_push(from_node, from_host, item.attr.jid); | 76 rm_roster_push(from_node, from_host, item.attr.jid); |
78 else | 77 else |
79 send(session, st.error_reply(stanza, err_type, err_cond, err_msg)); | 78 session.send(st.error_reply(stanza, err_type, err_cond, err_msg)); |
80 end | 79 end |
81 end | 80 end |
82 else | 81 else |
83 send(session, st.error_reply(stanza, "cancel", "not-allowed")); | 82 session.send(st.error_reply(stanza, "cancel", "not-allowed")); |
84 end | 83 end |
85 else | 84 else |
86 send(session, st.error_reply(stanza, "modify", "bad-request")); -- FIXME what's the correct error? | 85 session.send(st.error_reply(stanza, "modify", "bad-request")); -- FIXME what's the correct error? |
87 end | 86 end |
88 else | 87 else |
89 send(session, st.error_reply(stanza, "modify", "bad-request")); | 88 session.send(st.error_reply(stanza, "modify", "bad-request")); |
90 end | 89 end |
91 return true; | 90 return true; |
92 end | 91 end |
93 end | 92 end |
94 end); | 93 end); |