X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fdisconnect.pl;h=9acf0ce336fa5f37d5621b80139803097187c67b;hb=273bb156dcab276845ac5984ccebfa2cc68b451a;hp=02f9f45cf3088ea8c17ed1f8ba32b7364706e00b;hpb=85564500ce87c832f2a99fd96ccc1775dc896a0d;p=spider.git diff --git a/cmd/disconnect.pl b/cmd/disconnect.pl index 02f9f45c..9acf0ce3 100644 --- a/cmd/disconnect.pl +++ b/cmd/disconnect.pl @@ -15,14 +15,23 @@ foreach $call (@calls) { next if $call eq $main::mycall; my $dxchan = DXChannel->get($call); if ($dxchan) { - if ($dxchan->is_ak1a) { - $dxchan->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', $self->call))); + if ($dxchan->is_node) { +# $dxchan->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', $self->call))); } else { return (1, $self->msg('e5')) if $self->priv < 8; $dxchan->send_now('D', $self->msg('disc1', $self->call)); } $dxchan->disconnect; push @out, $self->msg('disc2', $call); + } 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); + } } else { push @out, $self->msg('e10', $call); }