# sping.pl/Irssi/fahren@bochnia.pl

# us. /SPING [server]

use Irssi;
use Irssi::Irc;

my %askping;

sub cmd_sping {
	my ($target, $server, $winit) = @_;
	
	$target = $server->{address} unless $target;
	$askping{$target} = time();
	$server->send_raw("PING $server->{address} $target");	
}

sub event_pong {
	my ($server, $args, $sname) = @_;
	
	Irssi::signal_stop() if ($askping{$sname});

	Irssi::print(">> $sname latency: " . (time() - $askping{$sname}) . "s");
	undef $askping{$sname};
}

Irssi::signal_add("event pong", "event_pong");
Irssi::command_bind("sping", "cmd_sping");
