examples/ping.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Fri, 27 Mar 2009 12:06:19 +0200
changeset 66 542f61e113cb
parent 64 bf7521ed96eb
child 68 742878c74b8e
permissions -rw-r--r--
Modularization, I * activity * attention * avatar * disco * evil * geoloc * ibb * iq * mood * oob * ping * pubsub * tune * mpd * pep
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
-- XMPP PING (XEP-0199)
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
-- library
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
     6
local lm = require 'lm'
64
bf7521ed96eb Rewrite of ibb in object style
Myhailo Danylenko <isbear@ukrpost.net>
parents: 60
diff changeset
     7
local iq = require 'iq'
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
     9
--
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    11
local F = { }
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    13
function F.send ( conn, to, success, fail )
60
b9fd051c0d7c Ping fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 55
diff changeset
    14
	iq.send ( conn, to, 'get',
b9fd051c0d7c Ping fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 55
diff changeset
    15
		{
b9fd051c0d7c Ping fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 55
diff changeset
    16
			ping = { xmlns = 'urn:xmpp:ping' },
b9fd051c0d7c Ping fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 55
diff changeset
    17
		}, success, fail )
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
end
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    20
function F.iq_handler ( conn, mess )
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    21
	local mtype, smtype = mess:type ()
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    22
	if smtype == 'get' then
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    23
		local p = mess:child ( 'ping' )
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    24
		if p and p:attribute ( 'xmlns' ) == 'urn:xmpp:ping' then
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    25
			conn:send ( lm.message.create { mtype = 'iq-result', to = mess:attribute ( 'from' ), id = mess:attribute ( 'id' ) } )
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    26
			return true
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
		end
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    28
	end
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    29
	return false
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    30
end
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
66
542f61e113cb Modularization, I
Myhailo Danylenko <isbear@ukrpost.net>
parents: 64
diff changeset
    32
return F
55
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
-- vim: se ts=4: --