X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=460e401a0099b6a9b7f7cc711ffbf33e1116d4c8;hb=d08aaa3e89259031f2d9b70a83ae194620870e7f;hp=8bfd6c3e43d4525d01fbe7109577db14c11ae2d1;hpb=19980464653659320e9b143f3da34b38bb908cb9;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 8bfd6c3e..460e401a 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -559,10 +559,13 @@ sub normal my $r = Route::User::get($call); my $flags = Route::here($here)|Route::conf($conf); - if ($r && $r->flags != $flags) { - $r->flags($flags); - push @rout, $r; - } elsif (!$r) { + if ($r) { + if ($r->flags != $flags) { + $r->flags($flags); + push @rout, $r; + } + $r->addparent($ncall); + } else { push @rout, $parent->add_user($call, $flags); } @@ -784,19 +787,16 @@ sub normal if ($pcno == 24) { # set here status my $call = uc $field[1]; my ($nref, $uref); - $nref = Route::Node::get($call) && $nref->here($field[2]); - $uref = Route::User::get($call) && $uref->here($field[2]); + $nref = Route::Node::get($call); + $uref = Route::User::get($call); return unless $nref || $uref; # if we don't know where they are, it's pointless sending it on unless (eph_dup($line)) { - if ($nref) { - return unless $self->in_filter_route($nref); - $self->route_pc24($nref, $field[3]) - } - if ($uref) { - return unless $self->in_filter_route($uref); - $self->route_pc24($uref, $field[3]); - } + $nref->here($field[2]) if $nref; + $uref->here($field[2]) if $uref; + my $ref = $nref || $uref; + return unless $self->in_filter_route($ref); + $self->route_pc24($ref, $field[3]); } return; }