Software /
code /
prosody
Comparison
plugins/mod_pubsub/mod_pubsub.lua @ 5973:905b4fd863b4
Merge 0.10->trunk and Happy New Year!
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 31 Dec 2013 19:09:34 +0100 |
parent | 5851:cdcfd93e2f43 |
parent | 5970:6a2c3293d4d7 |
child | 6442:0f4025abbe8f |
comparison
equal
deleted
inserted
replaced
5967:3b7206981317 | 5973:905b4fd863b4 |
---|---|
84 end | 84 end |
85 | 85 |
86 module:hook("host-disco-info-node", function (event) | 86 module:hook("host-disco-info-node", function (event) |
87 local stanza, origin, reply, node = event.stanza, event.origin, event.reply, event.node; | 87 local stanza, origin, reply, node = event.stanza, event.origin, event.reply, event.node; |
88 local ok, ret = service:get_nodes(stanza.attr.from); | 88 local ok, ret = service:get_nodes(stanza.attr.from); |
89 if ok and not ret[node] then | 89 if not ok or not ret[node] then |
90 return; | 90 return; |
91 end | |
92 if not ok then | |
93 return origin.send(pubsub_error_reply(stanza, ret)); | |
94 end | 91 end |
95 event.exists = true; | 92 event.exists = true; |
96 reply:tag("identity", { category = "pubsub", type = "leaf" }); | 93 reply:tag("identity", { category = "pubsub", type = "leaf" }); |
97 end); | 94 end); |
98 | 95 |
99 module:hook("host-disco-items-node", function (event) | 96 module:hook("host-disco-items-node", function (event) |
100 local stanza, origin, reply, node = event.stanza, event.origin, event.reply, event.node; | 97 local stanza, origin, reply, node = event.stanza, event.origin, event.reply, event.node; |
101 local ok, ret = service:get_items(node, stanza.attr.from); | 98 local ok, ret = service:get_items(node, stanza.attr.from); |
102 if not ok then | 99 if not ok then |
103 return origin.send(pubsub_error_reply(stanza, ret)); | 100 return; |
104 end | 101 end |
105 | 102 |
106 for _, id in ipairs(ret) do | 103 for _, id in ipairs(ret) do |
107 reply:tag("item", { jid = module.host, name = id }):up(); | 104 reply:tag("item", { jid = module.host, name = id }):up(); |
108 end | 105 end |
112 | 109 |
113 module:hook("host-disco-items", function (event) | 110 module:hook("host-disco-items", function (event) |
114 local stanza, origin, reply = event.stanza, event.origin, event.reply; | 111 local stanza, origin, reply = event.stanza, event.origin, event.reply; |
115 local ok, ret = service:get_nodes(event.stanza.attr.from); | 112 local ok, ret = service:get_nodes(event.stanza.attr.from); |
116 if not ok then | 113 if not ok then |
117 return origin.send(pubsub_error_reply(event.stanza, ret)); | 114 return; |
118 end | 115 end |
119 for node, node_obj in pairs(ret) do | 116 for node, node_obj in pairs(ret) do |
120 reply:tag("item", { jid = module.host, node = node, name = node_obj.config.name }):up(); | 117 reply:tag("item", { jid = module.host, node = node, name = node_obj.config.name }):up(); |
121 end | 118 end |
122 end); | 119 end); |