}
$dxchan->disconnect;
push @out, $self->msg('disc2', $call);
- } elsif (my $out = grep {$_->{call} eq $call} @main::outstanding_connects) {
- unless ($^O =~ /^MS/i) {
- kill 'TERM', $out->{pid};
+ } elsif (my $conn = Msg->conns($call)) {
+ $conn->disconnect;
+ push @out, $self->msg('disc3', $call);
+ } elsif (my $ref = DXCluster->get_exact($call)) {
+ my $dxchancall = $ref->dxchancall;
+ if ($dxchancall eq $main::mycall || !DXChannel->get($dxchancall)) {
+ $ref->del;
+ push @out, $self->msg('disc4', $call);
}
- @main::outstanding_connects = grep {$_->{call} ne $call} @main::outstanding_connects;
- push @out, $self->msg('disc2', $call);
} else {
push @out, $self->msg('e10', $call);
}