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");