use DXDebug;
use Filter;
use Prefix;
+use Route;
use strict;
use vars qw(%channels %valid @ISA $count);
group => '0,Access Group,parray', # used to create a group of users/nodes for some purpose or other
isolate => '5,Isolate network,yesno',
delayed => '5,Delayed messages,parray',
- annfilter => '5,Announce Filter',
- wwvfilter => '5,WWV Filter',
- wcyfilter => '5,WCY Filter',
- spotsfilter => '5,Spot Filter',
- routefilter => '5,route Filter',
- inannfilter => '5,Input Ann Filter',
- inwwvfilter => '5,Input WWV Filter',
- inwcyfilter => '5,Input WCY Filter',
- inspotsfilter => '5,Input Spot Filter',
- inroutefilter => '5,Input Route Filter',
+ annfilter => '5,Ann Filt-out',
+ wwvfilter => '5,WWV Filt-out',
+ wcyfilter => '5,WCY Filt-out',
+ spotsfilter => '5,Spot Filt-out',
+ routefilter => '5,Route Filt-out',
+ inannfilter => '5,Ann Filt-inp',
+ inwwvfilter => '5,WWV Filt-inp',
+ inwcyfilter => '5,WCY Filt-inp',
+ inspotsfilter => '5,Spot Filt-inp',
+ inroutefilter => '5,Route Filt-inp',
passwd => '9,Passwd List,parray',
pingint => '5,Ping Interval ',
nopings => '5,Ping Obs Count',
enhanced => '5,Enhanced Client,yesno',
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);
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
{