examples/ping.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Wed, 28 Nov 2012 20:17:53 +0200
changeset 146 04d19c9c1196
parent 70 e43e386c8a33
permissions -rw-r--r--
Fix module loading problem


local lm   = require 'lm'
local ping = require 'lm.ping'

main.command ( 'ping',
	function ( args )
		local who
		if args[1] then
			who = args[1]
		else
			who = main.full_jid ()
		end
		local time = os.time ()
		ping.send ( lm.connection.bless ( main.connection () ), who,
			function ()
				main.print_info ( who, ('Pong: %d seconds'):format ( os.time () - time ) )
			end,
			function ( mesg )
				main.print_info ( who, 'Ping failed: ' .. mesg )
			end )
	end, true, 'jid' )

commands_help['ping'] = '[jid]\n\nSends XMPP ping request to specified jid or current buddy'

--[[
local ping_handler = lm.message_handler.new ( ping.iq_handler )
local ping_handler_registered = false

hooks_d['hook-post-connect'].ping =
	function ( args )
		lm.connection.bless( main.connection () ):handler ( ping_handler, 'iq', 'normal' )
		ping_handler_registered = true
		hooks_d['hook-post-connect'].ping = nil
		hooks_d['hook-quit'].ping =
			function ( args )
				if ping_handler_registered then
					lm.connection.bless( main.connection () ):handler ( ping_handler, 'iq' )
				end
			end
	end

main.add_feature ( 'urn:xmpp:ping' )
--]]

-- vim: se ts=4: --