X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FDXChannel.pm;h=c4a81c7f509b503a9c3025217f2a3f80b45c5177;hb=47c7227bbec190df5f30c5bb64d7a78ed120b54b;hp=ba2e0edcad28607cb0df2502567817c95909e444;hpb=765add8acca099e69f2b2cde2bb58a48a00852d3;p=spider.git diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index ba2e0edc..c4a81c7f 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -32,6 +32,7 @@ use DXVars; use DXDebug; use Filter; use Prefix; +use Route; use strict; use vars qw(%channels %valid @ISA $count); @@ -103,6 +104,7 @@ $count = 0; senddbg => '8,Sending Debug,yesno', width => '0,Column Width', disconnecting => '9,Disconnecting,yesno', + ann_talk => '0,Suppress Talk Anns,yesno', ); use vars qw($VERSION $BRANCH); @@ -499,6 +501,26 @@ sub decode_input return ($sort, $call, $line); } +sub rspfcheck +{ + my ($self, $flag, $node, $user) = @_; + my $nref = Route::Node::get($node); + if ($nref) { + if ($nref->dxchan == $self) { + return 1 unless $user; + my @users = $nref->users; + return 1 if @users == 0 || grep $user eq $_, @users; + dbg("RSPF: $user not on $node") if isdbg('rspf'); + } else { + dbg("RSPF: Shortest path for $node is " . $nref->dxchan->{call}) if isdbg('rspf'); + } + } else { + return 1 if $flag; + dbg("RSPF: required $node not found" ) if isdbg('rspf'); + } + return 0; +} + no strict; sub AUTOLOAD {