Changeset

9817:7aad9eb7f050 0.11

mod_pubsub: Support requests for multiple items (fixes #1305)
author Kim Alvefur <zash@zash.se>
date Mon, 28 Jan 2019 01:41:42 +0100
parents 9816:7f84d7f77a00
children 9818:eb4724f20b1e 9819:11671a2e07a9
files plugins/mod_pubsub/pubsub.lib.lua
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_pubsub/pubsub.lib.lua	Mon Jan 28 01:41:01 2019 +0100
+++ b/plugins/mod_pubsub/pubsub.lib.lua	Mon Jan 28 01:41:42 2019 +0100
@@ -295,14 +295,20 @@
 
 function handlers.get_items(origin, stanza, items, service)
 	local node = items.attr.node;
-	local item = items:get_child("item");
-	local item_id = item and item.attr.id;
+
+	local requested_items = {};
+	for item in items:childtags("item") do
+		table.insert(requested_items, item.attr.id);
+	end
+	if requested_items[1] == nil then
+		requested_items = nil;
+	end
 
 	if not node then
 		origin.send(pubsub_error_reply(stanza, "nodeid-required"));
 		return true;
 	end
-	local ok, results = service:get_items(node, stanza.attr.from, item_id);
+	local ok, results = service:get_items(node, stanza.attr.from, requested_items);
 	if not ok then
 		origin.send(pubsub_error_reply(stanza, results));
 		return true;