X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=846a6c9245f3d0cdc45f8c3f08ea9e0a6e8e97ee;hb=9f7e2a3ed64a53dbb0bf2e44bcd463bceef6c45b;hp=8ee77084fd0a339f70f05912cb5b75e129e71b95;hpb=66efc9cee6be378f570c0f08f0f41ba739a3d8d2;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 8ee77084..846a6c92 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -1726,6 +1726,8 @@ sub disconnect my $pc39flag = shift; my $call = $self->call; + return if $self->{disconnecting}++; + unless ($pc39flag && $pc39flag == 1) { $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op"))); } @@ -1787,7 +1789,7 @@ sub send_route for (; @_ && $no; $no--) { my $r = shift; - if ($self->{routefilter}) { + if (!$self->{isolate} && $self->{routefilter}) { $filter = undef; if ($r) { ($filter, $hops) = $self->{routefilter}->it($self->{call}, $self->{dxcc}, $self->{itu}, $self->{cq}, $r->call, $r->dxcc, $r->itu, $r->cq); @@ -1800,7 +1802,7 @@ sub send_route dbg("was sent a null value") if isdbg('chanerr'); } } else { - push @rin, $r; + push @rin, $r unless $self->{isolate} && $r->call ne $main::mycall; } } if (@rin) { @@ -1831,7 +1833,7 @@ sub broadcast_route if ($dxchan->{routefilter}) { $dxchan->send_route($generate, @_); } else { - $dxchan->send_route($generate, @_) unless $self->{isolate} || $dxchan->{isolate}; + $dxchan->send_route($generate, @_) unless $self->{isolate}; } } }