mod_time: Updated to use events (which also fixes a few minor issues).

Sun, 18 Oct 2009 18:45:41 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Sun, 18 Oct 2009 18:45:41 +0500
changeset 2012
12131e7d3c25
parent 2011
8159497c86e3
child 2013
0bbbc9042361

mod_time: Updated to use events (which also fixes a few minor issues).

plugins/mod_time.lua file | annotate | diff | comparison | revisions
--- a/plugins/mod_time.lua	Sun Oct 18 18:26:58 2009 +0500
+++ b/plugins/mod_time.lua	Sun Oct 18 18:45:41 2009 +0500
@@ -6,8 +6,6 @@
 -- COPYING file in the source package for more information.
 --
 
-
-
 local st = require "util.stanza";
 local datetime = require "util.datetime".datetime;
 local legacy = require "util.datetime".legacy;
@@ -16,23 +14,31 @@
 
 module:add_feature("urn:xmpp:time");
 
-module:add_iq_handler({"c2s", "s2sin"}, "urn:xmpp:time",
-	function(session, stanza)
-		if stanza.attr.type == "get" then
-			session.send(st.reply(stanza):tag("time", {xmlns="urn:xmpp:time"})
-				:tag("tzo"):text("+00:00"):up() -- FIXME get the timezone in a platform independent fashion
-				:tag("utc"):text(datetime()));
-		end
-	end);
+local function time_handler(event)
+	local origin, stanza = event.origin, event.stanza;
+	if stanza.attr.type == "get" then
+		origin.send(st.reply(stanza):tag("time", {xmlns="urn:xmpp:time"})
+			:tag("tzo"):text("+00:00"):up() -- TODO get the timezone in a platform independent fashion
+			:tag("utc"):text(datetime()));
+		return true;
+	end
+end
+
+module:hook("iq/bare/urn:xmpp:time:time", time_handler);
+module:hook("iq/host/urn:xmpp:time:time", time_handler);
 
 -- XEP-0090: Entity Time (deprecated)
 
 module:add_feature("jabber:iq:time");
 
-module:add_iq_handler({"c2s", "s2sin"}, "jabber:iq:time",
-	function(session, stanza)
-		if stanza.attr.type == "get" then
-			session.send(st.reply(stanza):tag("query", {xmlns="jabber:iq:time"})
-				:tag("utc"):text(legacy()));
-		end
-	end);
+local function legacy_time_handler(event)
+	local origin, stanza = event.origin, event.stanza;
+	if stanza.attr.type == "get" then
+		origin.send(st.reply(stanza):tag("query", {xmlns="jabber:iq:time"})
+			:tag("utc"):text(legacy()));
+		return true;
+	end
+end
+
+module:hook("iq/bare/jabber:iq:time:query", legacy_time_handler);
+module:hook("iq/host/jabber:iq:time:query", legacy_time_handler);

mercurial