Mercurial > prosody-hg
comparison plugins/mod_roster.lua @ 1354:a27eb60a77cd
mod_roster: Using core_post_stanza in place of core.presencemanager.handle_presence
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sun, 14 Jun 2009 17:58:16 +0500 |
| parents | 57a72472e1bc |
| children | 42c6840ec47f |
comparison
equal
deleted
inserted
replaced
| 1353:5f169bd454ca | 1354:a27eb60a77cd |
|---|---|
| 18 local handle_presence = require "core.presencemanager".handle_presence; | 18 local handle_presence = require "core.presencemanager".handle_presence; |
| 19 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster; | 19 local rm_remove_from_roster = require "core.rostermanager".remove_from_roster; |
| 20 local rm_add_to_roster = require "core.rostermanager".add_to_roster; | 20 local rm_add_to_roster = require "core.rostermanager".add_to_roster; |
| 21 local rm_roster_push = require "core.rostermanager".roster_push; | 21 local rm_roster_push = require "core.rostermanager".roster_push; |
| 22 local core_route_stanza = core_route_stanza; | 22 local core_route_stanza = core_route_stanza; |
| 23 local core_post_stanza = core_post_stanza; | |
| 23 | 24 |
| 24 module:add_feature("jabber:iq:roster"); | 25 module:add_feature("jabber:iq:roster"); |
| 25 | 26 |
| 26 local rosterver_stream_feature = st.stanza("ver", {xmlns="urn:xmpp:features:rosterver"}):tag("optional"):up(); | 27 local rosterver_stream_feature = st.stanza("ver", {xmlns="urn:xmpp:features:rosterver"}):tag("optional"):up(); |
| 27 module:add_event_hook("stream-features", | 28 module:add_event_hook("stream-features", |
| 81 if success then | 82 if success then |
| 82 session.send(st.reply(stanza)); | 83 session.send(st.reply(stanza)); |
| 83 rm_roster_push(from_node, from_host, jid); | 84 rm_roster_push(from_node, from_host, jid); |
| 84 local to_bare = node and (node.."@"..host) or host; -- bare JID | 85 local to_bare = node and (node.."@"..host) or host; -- bare JID |
| 85 if r_item.subscription == "both" or r_item.subscription == "from" then | 86 if r_item.subscription == "both" or r_item.subscription == "from" then |
| 86 handle_presence(session, st.presence({type="unsubscribed"}), from_bare, to_bare, | 87 core_post_stanza(session, st.presence({type="unsubscribed", from=session.full_jid, to=to_bare})); |
| 87 core_route_stanza, false); | |
| 88 elseif r_item.subscription == "both" or r_item.subscription == "to" then | 88 elseif r_item.subscription == "both" or r_item.subscription == "to" then |
| 89 handle_presence(session, st.presence({type="unsubscribe"}), from_bare, to_bare, | 89 core_post_stanza(session, st.presence({type="unsubscribe", from=session.full_jid, to=to_bare})); |
| 90 core_route_stanza, false); | |
| 91 end | 90 end |
| 92 else | 91 else |
| 93 session.send(st.error_reply(stanza, err_type, err_cond, err_msg)); | 92 session.send(st.error_reply(stanza, err_type, err_cond, err_msg)); |
| 94 end | 93 end |
| 95 else | 94 else |
