/usr/share/irssi/scripts/sping.pl is in irssi-scripts 20160301.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | use Irssi;
use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.0";
%IRSSI = (
authors => "Maciek \'fahren\' Freudenheim, David Leadbeater",
contact => "fahren\@bochnia.pl",
name => "Server Ping",
description => "/SPING [server] - checks latency between current server and [server]",
license => "GNU GPLv2 or later",
changed => "Sun 15 Jun 18:56:52 BST 2014",
);
# us. /SPING [server]
use Time::HiRes qw(gettimeofday);
my %askping;
sub cmd_sping {
my ($target, $server, $winit) = @_;
$target = $server->{address} unless $target;
$askping{$target} = gettimeofday();
# using nickname rather than server seems to work better here
$server->send_raw("PING $server->{nick} $target");
}
sub event_pong {
my ($server, $args, $sname) = @_;
return unless exists $askping{$sname};
Irssi::signal_stop();
Irssi::print(">> $sname latency: " . sprintf("%0.3f",gettimeofday() - $askping{$sname}) . "s");
delete $askping{$sname};
}
Irssi::signal_add("event pong", "event_pong");
Irssi::command_bind("sping", "cmd_sping");
|