X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=2fe92625701aec7d7b57674acdc08adf3ca274ec;hb=2a041c367bd06ea2b74e7c116f3e1dfbbf6353e0;hp=9c04497680673939c3fc8ca9ac6c3e520e932ed8;hpb=171f9837d8bb99d05c2b3bb87066d25d448eabd3;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 9c044976..2fe92625 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -670,7 +670,7 @@ sub normal $parent = Route::Node::get($_->[0]); $dxchan = $parent->dxchan if $parent; if ($dxchan && $dxchan ne $self) { - dbg("PCPROT: PC16 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr'); + dbg("PCPROT: PC19 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr'); $parent = undef; } if ($parent) { @@ -685,6 +685,10 @@ sub normal # route the pc19 - this will cause 'stuttering PC19s' for a while $self->route_pc19(@nrout) if @nrout ; $parent = Route::Node::get($ncall); + unless ($parent) { + dbg("PCPROT: lost $ncall after sending PC19 for it?"); + return; + } } else { return; } @@ -729,13 +733,12 @@ sub normal my $flags = Route::here($here)|Route::conf($conf); if ($r) { - my @add; - push @add, $r->addparent($parent); + my $au = $r->addparent($parent); if ($r->flags != $flags) { $r->flags($flags); - push @add, $r unless @add; + $au = $r; } - push @rout, @add; + push @rout, $r if $au; } else { push @rout, $parent->add_user($call, $flags); } @@ -1142,7 +1145,9 @@ sub normal if ($pcno == 41) { # user info my $call = $field[1]; - if (eph_dup($line, $eph_info_restime)) { + my $l = $line; + $l =~ s/[\x00-\x20\x7f-\xff]+//g; # remove all funny characters and spaces for dup checking + if (eph_dup($l, $eph_info_restime)) { dbg("PCPROT: dupe") if isdbg('chanerr'); return; }