clix/ping.lua

Mon, 08 Feb 2021 22:56:45 +0100

author
Kim Alvefur <zash@zash.se>
date
Mon, 08 Feb 2021 22:56:45 +0100
changeset 146
ae85457eca8e
parent 104
16cdeb9cd879
permissions
-rw-r--r--

clix.archive: Skip printing body-less messages

These are more and more common in archives, e.g. receipts, errors, OMEMO
etc.

return function (opts, arg)
	if opts.short_help then
		print("Measure the round-trip latency time of a given JID");
		return;
	end
	if #arg == 0 or opts.help then
		return 0;
	end
	local conn;
	local function on_reply(time, jid, reply)
		if time then
			print(string.format("%s latency: %1.3fs", jid, time));
		else
			print("Error requesting ping ("..(reply.condition or "unknown")..")"..(reply.text and (": "..reply.text) or ""));
		end
		conn:close();
	end
	local function on_connect(_conn)
		conn = _conn;
		conn:add_plugin("ping");
		conn:ping(arg[1], on_reply);
	end
	clix_connect(opts, on_connect);
end

mercurial