X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fping.pl;h=89f43a0bb86144eb90284d0e1ed087f7dd0b221a;hb=6a17c3a3e2f7a72c0d13a93c90a010b753319def;hp=aab2a3e6b2b94076f9b4ff0810465184ea49dd2f;hpb=611e9ea5204765638eceecbd8e1dd04a4f10a1be;p=spider.git diff --git a/cmd/ping.pl b/cmd/ping.pl index aab2a3e6..89f43a0b 100644 --- a/cmd/ping.pl +++ b/cmd/ping.pl @@ -3,31 +3,46 @@ # # Copyright (c) 1998 Dirk Koopman G1TLH # -# $Id$ # +# + +my $counter; + +sub init +{ + $counter = 0; +} + +sub handle +{ + my $self = shift; + my $line = uc shift; # only one callsign allowed + my ($call) = $line =~ /^\s*(\S+)/; -my $self = shift; -my $line = uc shift; # only one callsign allowed -my ($call) = $line =~ /^\s*(\S+)/; +# $DB::single = 1; -# are we permitted? -return (1, $self->msg('e5')) if $self->priv < 1; + if ($self->{priv} < 1) { + if ($call) { + return (1, "PONG $call"); + } + ++$counter, return (1, "PONG $counter") + } -# is there a call? -return (1, $self->msg('e6')) if !$call; + # is there a call? + return (1, $self->msg('e6')) if !$call; -# is it me? -return (1, $self->msg('pinge1')) if $call eq $main::mycall; + # is it me? + return (1, $self->msg('pinge1')) if $call eq $main::mycall; -# can we see it? Is it a node? -my $noderef = Route::Node::get($call); -$noderef = RouteDB::get($call) unless $noderef; + # can we see it? Is it a node? + my $noderef = Route::Node::get($call); -return (1, $self->msg('e7', $call)) unless $noderef; + return (1, $self->msg('e7', $call)) unless $noderef; -# ping it -DXProt::addping($self->call, $call); + # ping it + DXXml::Ping::add($self, $call); -return (1, $self->msg('pingo', $call)); + return (1, $self->msg('pingo', $call)); +}