fix K1XX's problem with node eq user callsigns on PC11s
[spider.git] / perl / DXChannel.pm
index 463d43a2773d8b3d004f446675ae3bd03c250af7..8dae7cd6d54dc3e66a2f31a317f3268628b6c7d0 100644 (file)
@@ -85,7 +85,7 @@ $count = 0;
                  inwcyfilter => '5,WCY Filt-inp',
                  inspotsfilter => '5,Spot Filt-inp',
                  inroutefilter => '5,Route Filt-inp',
-                 passwd => '9,Passwd List,parray',
+                 passwd => '9,Passwd List,yesno',
                  pingint => '5,Ping Interval ',
                  nopings => '5,Ping Obs Count',
                  lastping => '5,Ping last sent,atime',
@@ -106,6 +106,9 @@ $count = 0;
                  disconnecting => '9,Disconnecting,yesno',
                  ann_talk => '0,Suppress Talk Anns,yesno',
                  metric => '1,Route metric',
+                 badcount => '1,Bad Word Count',
+                 edit => '7,Edit Function',
+                 registered => '9,Registered?,yesno',
                 );
 
 use vars qw($VERSION $BRANCH);
@@ -490,12 +493,12 @@ sub decode_input
        # the above regexp must work
        unless (defined $sort && defined $call && defined $line) {
 #              $data =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
-               dbg("DUFF Line on $chcall: $data") if isdbg('err');
+               dbg("DUFF Line on $chcall: $data");
                return ();
        }
 
        if(ref($dxchan) && $call ne $chcall) {
-               dbg("DUFF Line come in for $call on wrong channel $chcall") if isdbg('err');
+               dbg("DUFF Line come in for $call on wrong channel $chcall");
                return();
        }
        
@@ -506,18 +509,20 @@ sub rspfcheck
 {
        my ($self, $flag, $node, $user) = @_;
        my $nref = Route::Node::get($node);
-       if ($nref) {
-           if ($nref->dxchan == $self) {
+       my $dxchan = $nref->dxchan if $nref;
+       if ($nref && $dxchan) {
+           if ($dxchan == $self) {
                        return 1 unless $user;
+                       return 1 if $user eq $node;
                        my @users = $nref->users;
                        return 1 if @users == 0 || grep $user eq $_, @users;
-                       dbg("RSPF: $user not on $node") if isdbg('rspf');
+                       dbg("RSPF: $user not on $node") if isdbg('chanerr');
                } else {
-                       dbg("RSPF: Shortest path for $node is " . $nref->dxchan->{call}) if isdbg('rspf');
+                       dbg("RSPF: Shortest path for $node is " . $nref->dxchan->{call}) if isdbg('chanerr');
                }
        } else {
                return 1 if $flag;
-               dbg("RSPF: required $node not found" ) if isdbg('rspf');
+               dbg("RSPF: required $node not found" ) if isdbg('chanerr');
        }
        return 0;
 }