changeset 9:2be8bcce5b18

thx to Florob: add remove_item support to mod_addhoc and reload support to mod_adhoc_cmd_ping the returned pong shows the time in the note
author ephraim@errorm.fritz.box
date Fri, 25 Sep 2009 20:33:14 +0200
parents 10502594a49b
children 7d70faba234c
files mod_adhoc/mod_adhoc.lua mod_adhoc_cmd_ping/mod_adhoc_cmd_ping.lua
diffstat 2 files changed, 22 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mod_adhoc/mod_adhoc.lua	Fri Sep 25 16:56:50 2009 +0200
+++ b/mod_adhoc/mod_adhoc.lua	Fri Sep 25 20:33:14 2009 +0200
@@ -39,3 +39,14 @@
 module:hook("item-added/adhoc", function (event)
 	commands[ # commands + 1] = event.item;
 end, 500);
+
+local _G = _G;
+local t_remove = _G.table.remove;
+module:hook("item-removed/adhoc", function (event)
+	module:log("debug", "Remove function called");
+	for i = 1, #commands do
+		if commands[i].node == event.item.node then
+			t_remove(commands, i);
+		end
+	end
+end, 500);
--- a/mod_adhoc_cmd_ping/mod_adhoc_cmd_ping.lua	Fri Sep 25 16:56:50 2009 +0200
+++ b/mod_adhoc_cmd_ping/mod_adhoc_cmd_ping.lua	Fri Sep 25 20:33:14 2009 +0200
@@ -7,10 +7,18 @@
 local st = require "util.stanza";
 
 function ping_command_handler (item, origin, stanza)
-	local now = os.date("%Y-%m-%dT%X")
+	local now = os.date("%Y-%m-%dT%X");
 	origin.send(st.reply(stanza):tag("command", {xmlns="http://jabber.org/protocol/commands", status="completed", node=item.node, sessionid=now})
-		:tag("note", {type="info"}):text(item.name));
+		:tag("note", {type="info"}):text("Pong\n" .. now));
 	return true;
 end
 
-module:add_item ("adhoc", { name="Ping", node="ping", handler=ping_command_handler });
+local descriptor = { name="Ping", node="ping", handler=ping_command_handler };
+
+function module.unload()
+	module:log("debug", "Removing ping command");
+	module:remove_item("adhoc", descriptor);
+end
+
+module:add_item ("adhoc", descriptor);
+