X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FRouteDB.pm;h=8059b08d5f92ee9ecf194ec87ef5172947af8fd4;hb=7a3918d750c1afaf42ab26eb89a7df9033ca9f37;hp=c9c01ff4544565ea80651a35f78fb0dcd4526622;hpb=611e9ea5204765638eceecbd8e1dd04a4f10a1be;p=spider.git diff --git a/perl/RouteDB.pm b/perl/RouteDB.pm index c9c01ff4..8059b08d 100644 --- a/perl/RouteDB.pm +++ b/perl/RouteDB.pm @@ -13,25 +13,21 @@ # # Copyright (c) 2004 Dirk Koopman G1TLH # -# $Id$ +# # package RouteDB; use DXDebug; use DXChannel; +use DXUtil; use Prefix; use strict; -use vars qw($VERSION $BRANCH); -$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); -$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); -$main::build += $VERSION; -$main::branch += $BRANCH; - use vars qw(%list %valid $default); + %list = (); $default = 99; # the number of hops to use if we don't know %valid = ( @@ -90,7 +86,7 @@ sub update my $interface = shift; my $hops = shift || $default; my $ref = $list{$call} || RouteDB->new($call); - my $iref = $ref->{item}->{$interface} ||= RouteDB::Item->new($interface); + my $iref = $ref->{item}->{$interface} ||= RouteDB::Item->new($interface, $hops); $iref->{count}++; $iref->{hops} = $hops if $hops < $iref->{hops}; $iref->{t} = shift || $main::systime; @@ -106,6 +102,14 @@ sub delete delete $ref->{item}->{$interface} if $ref; } +sub delete_interface +{ + my $interface = shift; + foreach my $ref (values %list) { + delete $ref->{item}->{$interface}; + } +} + # # generic AUTOLOAD for accessors # @@ -134,7 +138,8 @@ sub new { my $pkg = shift; my $call = shift; - return bless {call => $call, hops => $RouteDB::default}, (ref $pkg || $pkg); + my $hops = shift || $RouteDB::default; + return bless {call => $call, hops => $hops}, (ref $pkg || $pkg); } 1;