X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FRoute%2FNode.pm;h=0880622ea538c9739fe1bb958f95d8cec45bc450;hb=c1e8434f73e0b575c3b2d28cd3c257c3b15ffbe6;hp=3c0feb4ba32f527fedd97b7321fbb13757fe6840;hpb=b9ac5347cb32b8511a9cec13ef89c14683df995e;p=spider.git diff --git a/perl/Route/Node.pm b/perl/Route/Node.pm index 3c0feb4b..0880622e 100644 --- a/perl/Route/Node.pm +++ b/perl/Route/Node.pm @@ -25,11 +25,12 @@ use vars qw(%list %valid @ISA $max $filterdef); %valid = ( dxchan => '0,DXChannel List,parray', - nodes => '0,Nodes,parray', - users => '0,Users,parray', + nodes => '0,Node List,parray', + users => '0,User List,parray', usercount => '0,User Count', version => '0,Version', newroute => '0,New Routing?,yesno', + pingtime => '0,Ping Time', ); $filterdef = $Route::filterdef; @@ -97,9 +98,9 @@ sub remove_route foreach my $r (@in) { next unless $r; next if $visited{$r->call}; - my ($o) = $r->del_dxchan($self); + my ($o) = $r->del_dxchan($dxchan); if ($o) { - dbg("Orphanning $_->{call}") if isdbg('routelow'); + dbg("Orphanning $o->{call}") if isdbg('routelow'); push @rout, $o; } push @in, map{ Route::Node::get($_) } $r->nodes; @@ -155,7 +156,8 @@ sub add_dxchan sub del_dxchan { my ($self, $dxchan) = @_; - return $self->_dellist('dxchan', $dxchan); + $self->_dellist('dxchan', $dxchan); + return $self->is_empty('dxchan') ? ($self) : (); } sub usercount @@ -213,7 +215,10 @@ sub new sub delete { my $self = shift; - dbg("deleting Route::Node $self->{call}") if isdbg('routelow'); + dbg("Deleting Route::Node $self->{call}") if isdbg('routelow'); + for ($self->unlink_all_users) { + $_->delete; + } delete $list{$self->{call}}; }