some fixed
[spider.git] / perl / DXProt.pm
index 06cf1007c5c34eaa7f536ce2f782a5ec01fe1bed..e33488ccaf9942c5cdca015e66e0ff74f936078a 100644 (file)
@@ -431,11 +431,13 @@ sub normal
                                                if ($to ne $field[7]) {
                                                        $to = $field[7];
                                                        $node = Route::Node::get($to);
-                                                       $dxchan = $node->dxchan;
-                                                       if ($node->dxchan && $dxchan->is_clx) {
-                                                               route(undef, $to, pc84($main::mycall, $to, $main::mycall, $cmd));
-                                                       } else {
-                                                               route(undef, $to, pc34($main::mycall, $to, $cmd));
+                                                       if ($node) {
+                                                               $dxchan = $node->dxchan;
+                                                               if ($dxchan && $dxchan->is_clx) {
+                                                                       route(undef, $to, pc84($main::mycall, $to, $main::mycall, $cmd));
+                                                               } else {
+                                                                       route(undef, $to, pc34($main::mycall, $to, $cmd));
+                                                               }
                                                        }
                                                }
                                                $user->lastoper($main::systime);
@@ -605,7 +607,8 @@ sub normal
                        my $node = Route::Node::get($self->{call});
                        my @rout;
                        for ($node->nodes) {
-                               push @rout, $_->del_node;
+                               my $r = Route::Node::get($_);
+                               push @rout, $r->del_node if $r;
                        }
                        $self->route_pc21(@rout, $node);
                        $self->send_local_config();
@@ -639,6 +642,8 @@ sub normal
                                        $node->flags(Route::here($here)|Route::conf($conf));
                                        push @rout, $node;
                                } elsif ($node->call ne $call) {
+                                       next if $call eq $main::mycall || $call eq $self->{call};
+
                                        my $r = $node->add($call, $ver, Route::here($here)|Route::conf($conf));
                                        push @rout, $r if $r;
                                }
@@ -1688,7 +1693,7 @@ sub send_route
                                $routeit = adjust_hops($self, $line);  # adjust its hop count by node name
                                next unless $routeit;
                        }
-                       $self->send($routeit) unless $self->{isolate} || $self->{isolate};
+                       $self->send($routeit);
                }
        }
 }