summaryrefslogtreecommitdiffstats
path: root/scripts/sping.pl
diff options
context:
space:
mode:
authortomaw2014-06-15 20:10:56 +0100
committertomaw2014-06-15 20:10:56 +0100
commit245df12b2ea87c3c22e41d54e6652574f122cb41 (patch)
tree2a1ebbb7c5dcc59c14c6d25fa26da4cf22c61285 /scripts/sping.pl
parent1777b5bab4b92f6eebd7269c2657ac824b61b067 (diff)
parente382d976193c20918e8c490db4ae575b7440c75b (diff)
downloadscripts.irssi.org-245df12b2ea87c3c22e41d54e6652574f122cb41.tar.bz2
Merge pull request #10 from dgl/dgl-scripts
Update dgl scripts
Diffstat (limited to 'scripts/sping.pl')
-rw-r--r--scripts/sping.pl25
1 files changed, 15 insertions, 10 deletions
diff --git a/scripts/sping.pl b/scripts/sping.pl
index 49d8d78..4842454 100644
--- a/scripts/sping.pl
+++ b/scripts/sping.pl
@@ -3,33 +3,38 @@ use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
-$VERSION = "0.9";
+$VERSION = "1.0";
%IRSSI = (
- authors => "Maciek \'fahren\' Freudenheim",
+ 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 => "Fri Mar 15 15:09:42 CET 2002"
+ 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} = time();
- $server->send_raw("PING $server->{address} $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) = @_;
-
- Irssi::signal_stop() if ($askping{$sname});
+ return unless exists $askping{$sname};
- Irssi::print(">> $sname latency: " . (time() - $askping{$sname}) . "s");
- undef $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");