Annotate

plugins/mod_ping.lua @ 5877:615a0774e4cc

util.timer: Updated to use util.indexedbheap to provide a more complete API. Timers can now be stopped or rescheduled. Callbacks are now pcall'd. Adding/removing timers from within timer callbacks works better. Optional parameter can be passed when creating timer which gets passed to callback, eliminating the need for closures in various timer uses. Timers are now much more lightweight.
author Waqas Hussain <waqas20@gmail.com>
date Wed, 30 Oct 2013 17:44:42 -0400
parent 5776:bd0ff8ae98a8
child 6012:7e8a624272bf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1523
841d61be198f Remove version number from copyright headers
Matthew Wild <mwild1@gmail.com>
parents: 1511
diff changeset
1 -- Prosody IM
2923
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 2011
diff changeset
2 -- Copyright (C) 2008-2010 Matthew Wild
b7049746bd29 Update copyright headers for 2010
Matthew Wild <mwild1@gmail.com>
parents: 2011
diff changeset
3 -- Copyright (C) 2008-2010 Waqas Hussain
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 4129
diff changeset
4 --
758
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 615
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 615
diff changeset
6 -- COPYING file in the source package for more information.
519
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 438
diff changeset
7 --
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 438
diff changeset
8
1511
f9f8b7184cbe mod_ping: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 896
diff changeset
9 local st = require "util.stanza";
f9f8b7184cbe mod_ping: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 896
diff changeset
10
f9f8b7184cbe mod_ping: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 896
diff changeset
11 module:add_feature("urn:xmpp:ping");
f9f8b7184cbe mod_ping: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 896
diff changeset
12
2011
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
13 local function ping_handler(event)
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
14 if event.stanza.attr.type == "get" then
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
15 event.origin.send(st.reply(event.stanza));
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
16 return true;
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
17 end
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
18 end
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
19
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
20 module:hook("iq/bare/urn:xmpp:ping:ping", ping_handler);
8159497c86e3 mod_ping: Updated to use events (which also fixes a few minor issues).
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
21 module:hook("iq/host/urn:xmpp:ping:ping", ping_handler);
3486
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
22
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
23 -- Ad-hoc command
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
24
4129
c86b68abe12e mod_ping: Use util.datetime to generate timestamp in ad-hoc command response (instead of the current use of os.date, which doesn't take timezone into account).
Waqas Hussain <waqas20@gmail.com>
parents: 3486
diff changeset
25 local datetime = require "util.datetime".datetime;
c86b68abe12e mod_ping: Use util.datetime to generate timestamp in ad-hoc command response (instead of the current use of os.date, which doesn't take timezone into account).
Waqas Hussain <waqas20@gmail.com>
parents: 3486
diff changeset
26
3486
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
27 function ping_command_handler (self, data, state)
4129
c86b68abe12e mod_ping: Use util.datetime to generate timestamp in ad-hoc command response (instead of the current use of os.date, which doesn't take timezone into account).
Waqas Hussain <waqas20@gmail.com>
parents: 3486
diff changeset
28 local now = datetime();
3486
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
29 return { info = "Pong\n"..now, status = "completed" };
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
30 end
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
31
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
32 local adhoc_new = module:require "adhoc".new;
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
33 local descriptor = adhoc_new("Ping", "ping", ping_command_handler);
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
34 module:add_item ("adhoc", descriptor);
8a46bb70016f mod_ping: Add ad-hoc command
Florian Zeitz <florob@babelmonkeys.de>
parents: 2923
diff changeset
35