X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtHandle.pm;h=cd4cdd44cba2f915374fe220b6ba400803b48ccd;hb=b72f2581870f11b7e78ca7add1e9fea856145f02;hp=7db433e5205f8273c6a00bc5d7f9fbc624a0147f;hpb=f4c54c5174d50224a745d5ed71ad1563a9440083;p=spider.git diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index 7db433e5..cd4cdd44 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -1677,7 +1677,7 @@ sub handle_92 # cope with missing duplicate node calls in the first slot for A or D my $me = $_[4] || ''; if (($sort eq 'A' || $sort eq 'D')) { - $me ||= _encode_pc92_call($parent) if !$me ; + $me ||= _encode_pc92_call($parent) unless $me ; } else { unless ($me) { dbg("PCPROT: this type of PC92 *must* have a node call in the first slot, ignored") if is_dbg('chanerr'); @@ -1685,7 +1685,7 @@ sub handle_92 } } - my @ent = map {[ _decode_pc92_call($_) ]} grep {$_ && /^[0-7]/} $me, @_[5 .. $#_]; + my @ent = map {my @a = _decode_pc92_call($_); @a ? \@a : ()} grep {$_ && /^[0-7]/} $me, @_[5 .. $#_]; if (@ent) { @@ -1705,7 +1705,7 @@ sub handle_92 # do a pass through removing any references to either locally connected nodes or mycall my @nent; for (@ent) { - next unless $_; + next unless $_ && @$_; if ($_->[0] eq $main::mycall || DXChannel::get($_->[0])) { dbg("PCPROT: $_->[0] refers to locally connected node, ignored") if isdbg('chanerr'); next;