Diff

plugins/mod_pubsub/pubsub.lib.lua @ 8334:036e46d12b78

mod_pubsub: Move dispatch function into pubsub.lib
author Kim Alvefur <zash@zash.se>
date Wed, 18 Oct 2017 07:46:44 +0200
parent 8333:2abbb01cd756
child 8336:587305c0ff85
line wrap: on
line diff
--- a/plugins/mod_pubsub/pubsub.lib.lua	Tue Oct 17 05:47:06 2017 +0200
+++ b/plugins/mod_pubsub/pubsub.lib.lua	Wed Oct 18 07:46:44 2017 +0200
@@ -53,6 +53,20 @@
 	};
 };
 
+function _M.handle_pubsub_iq(event, service)
+	local origin, stanza = event.origin, event.stanza;
+	local pubsub_tag = stanza.tags[1];
+	local action = pubsub_tag.tags[1];
+	if not action then
+		return origin.send(st.error_reply(stanza, "cancel", "bad-request"));
+	end
+	local handler = handlers[stanza.attr.type.."_"..action.name];
+	if handler then
+		handler(origin, stanza, action, service);
+		return true;
+	end
+end
+
 function handlers.get_items(origin, stanza, items, service)
 	local node = items.attr.node;
 	local item = items:get_child("item");