X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=4d716ce79844f486132e09d917b715381aebd070;hb=96c657642de846460719a12ef090f64012fd584d;hp=bd34278f6485310d5c928f410978c43813ae6f17;hpb=19b253010e430d711fdf73c1176179f35d6d30a2;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index bd34278f..4d716ce7 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -693,9 +693,8 @@ sub normal # input filter if required return unless $self->in_filter_route($parent); - my @rout = $parent->del_user($uref); - - $self->route_pc17($parent, @rout) if @rout; + $parent->del_user($uref); + $self->route_pc17($parent, $uref); return; } @@ -745,6 +744,13 @@ sub normal next if length $call < 3; # min 3 letter callsigns next if $call eq $main::mycall; + # check that this PC19 isn't trying to alter the wrong dxchan + my $dxchan = DXChannel->get($call); + if ($dxchan && $dxchan != $self) { + dbg("PCPROT: PC19 from $self->{call} trying to alter wrong locally connected $call, ignored!") if isdbg('chanerr'); + return; + } + # update it if required my $r = Route::Node::get($call); my $flags = Route::here($here)|Route::conf($conf); @@ -835,8 +841,8 @@ sub normal my $node = Route::Node::get($call); if ($node) { - my $dxchan = $node->dxchan; - if ($dxchan && $dxchan ne $self) { + my $dxchan = DXChannel->get($call); + if ($dxchan && $dxchan != $self) { dbg("PCPROT: PC21 from $self->{call} trying to alter locally connected $call, ignored!") if isdbg('chanerr'); return; }