Software /
code /
prosody
Comparison
plugins/mod_pubsub/pubsub.lib.lua @ 11882:c3bd71227e17
mod_pubsub: Return proper errors for disco queries on nodes
Previously this would return item-not-found, even when you could see the
node in disco#items.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 01 Nov 2021 17:59:46 +0100 |
parent | 11855:8890eaa69446 |
child | 11904:313d01cc4258 |
comparison
equal
deleted
inserted
replaced
11881:2138fc13d53a | 11882:c3bd71227e17 |
---|---|
278 function _M.handle_disco_info_node(event, service) | 278 function _M.handle_disco_info_node(event, service) |
279 local stanza, reply, node = event.stanza, event.reply, event.node; | 279 local stanza, reply, node = event.stanza, event.reply, event.node; |
280 local ok, ret = service:get_nodes(stanza.attr.from); | 280 local ok, ret = service:get_nodes(stanza.attr.from); |
281 local node_obj = ret[node]; | 281 local node_obj = ret[node]; |
282 if not ok or not node_obj then | 282 if not ok or not node_obj then |
283 return; | 283 event.origin.send(pubsub_error_reply(stanza, ret or "item-not-found")); |
284 return true; | |
284 end | 285 end |
285 event.exists = true; | 286 event.exists = true; |
286 reply:tag("identity", { category = "pubsub", type = "leaf" }):up(); | 287 reply:tag("identity", { category = "pubsub", type = "leaf" }):up(); |
287 if node_obj.config then | 288 if node_obj.config then |
288 reply:add_child(node_metadata_form:form({ | 289 reply:add_child(node_metadata_form:form({ |
297 | 298 |
298 function _M.handle_disco_items_node(event, service) | 299 function _M.handle_disco_items_node(event, service) |
299 local stanza, reply, node = event.stanza, event.reply, event.node; | 300 local stanza, reply, node = event.stanza, event.reply, event.node; |
300 local ok, ret = service:get_items(node, stanza.attr.from); | 301 local ok, ret = service:get_items(node, stanza.attr.from); |
301 if not ok then | 302 if not ok then |
302 return; | 303 event.origin.send(pubsub_error_reply(stanza, ret)); |
304 return true; | |
303 end | 305 end |
304 | 306 |
305 for _, id in ipairs(ret) do | 307 for _, id in ipairs(ret) do |
306 reply:tag("item", { jid = module.host, name = id }):up(); | 308 reply:tag("item", { jid = module.host, name = id }):up(); |
307 end | 309 end |