and a bit more
[spider.git] / perl / DXProt.pm
index 51bdc8efa34712dcdc6b05743f193dbfe516c178..497a26712b63f64b279b7bde6992f4d4fc2d525b 100644 (file)
@@ -842,9 +842,16 @@ sub handle_18
        $self->newroute( $_[1] =~ /NewRoute/ );
 
        # first clear out any nodes on this dxchannel
-       my $parent = Route::Node::get($self->{call});
-       my @rout = $parent->del_nodes;
-       $self->route_pc21($origin, $line, @rout, $parent) if @rout;
+       my $node = Route::Node::get($self->{call}) ;
+       my @rout = grep {$_ != $node } $main::routeroot->remove_route($node, $self) if $node;
+       my @rusers;
+       push @rusers, $_->unlink_all_users for @rout;
+       $self->route_pc21($origin, $line, @rout) if @rout;
+       for (@rout, @rusers) {
+               $_->delete;
+       };
+       
+       # send the new config
        $self->send_local_config();
        $self->send(pc20());
 }