-\r
-local st = require "util.stanza"\r
-\r
-local jid_split = require "util.jid".split;\r
-local t_concat = table.concat;\r
-\r
-local start_time = os.time();\r
-\r
-module:add_feature("jabber:iq:last");\r
-\r
-module:add_iq_handler({"c2s", "s2sin"}, "jabber:iq:last", \r
- function (origin, stanza)\r
- if stanza.tags[1].name == "query" then\r
- if stanza.attr.type == "get" then\r
- local node, host, resource = jid_split(stanza.attr.to);\r
- if node or resource then\r
- -- TODO\r
- else\r
- origin.send(st.reply(stanza):tag("query", {xmlns = "jabber:iq:last", seconds = tostring(os.difftime(os.time(), start_time))}));\r
- return true;\r
- end\r
- end\r
- end\r
- end);\r
+module:hook("iq/host/jabber:iq:last:query", function(event)
+ local origin, stanza = event.origin, event.stanza;
+ if stanza.attr.type == "get" then
+ origin.send(st.reply(stanza):tag("query", {xmlns = "jabber:iq:last", seconds = tostring(os.difftime(os.time(), start_time))}));
+ return true;
+ end
+end);