X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;fp=perl%2FDXProt.pm;h=497a26712b63f64b279b7bde6992f4d4fc2d525b;hb=b9ac5347cb32b8511a9cec13ef89c14683df995e;hp=51bdc8efa34712dcdc6b05743f193dbfe516c178;hpb=9a31104f31ce5d80a659dea3de9dbf9a5d46ef8e;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 51bdc8ef..497a2671 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -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()); }