html/sping.pl
1 use Irssi;
2 use Irssi::Irc;
3 use strict;
4
5 use vars qw($VERSION %IRSSI);
6 $VERSION = "0.9";
7 %IRSSI = (
8 authors => "Maciek \'fahren\' Freudenheim",
9 contact => "fahren\@bochnia.pl",
10 name => "Server Ping",
11 description => "/SPING [server] - checks latency between current server and [server]",
12 license => "GNU GPLv2 or later",
13 changed => "Fri Mar 15 15:09:42 CET 2002"
14 );
15
16 my %askping;
17
18 sub cmd_sping {
19 my ($target, $server, $winit) = @_;
20
21 $target = $server->{address} unless $target;
22 $askping{$target} = time();
23 $server->send_raw("PING $server->{address} $target");
24 }
25
26 sub event_pong {
27 my ($server, $args, $sname) = @_;
28
29 Irssi::signal_stop() if ($askping{$sname});
30
31 Irssi::print(">> $sname latency: " . (time() - $askping{$sname}) . "s");
32 undef $askping{$sname};
33 }
34
35 Irssi::signal_add("event pong", "event_pong");
36 Irssi::command_bind("sping", "cmd_sping");