{
my $call = uc shift;
my $dxchan = DXChannel->get($call);
- if ($dxchan) {
- if ($dxchan->is_ak1a) {
- $dxchan->send_now("D", DXProt::pc39($main::mycall, "$main::mycall DXCron"));
- } else {
- $dxchan->send_now('D', "");
- }
- $dxchan->disconnect;
- }
- my $out = grep {$_->{call} eq $call} @main::outstanding_connects;
- if ($out) {
- unless ($^O =~ /^MS/i) {
- kill 'TERM', $out->{pid};
- }
- @main::outstanding_connects = grep {$_->{call} ne $call} @main::outstanding_connects;
- }
+ $dxchan->disconnect if $dxchan;
}
# start a connect process off
my $call = uc shift;
my $lccall = lc $call;
- if (grep {$_->{call} eq $call} @main::outstanding_connects) {
+ if (Msg->conns($call)) {
dbg('cron', "Connect not started, outstanding connect to $call");
return;
}
# in child, unset warnings, disable debugging and general clean up from us
$^W = 0;
eval "{ package DB; sub DB {} }";
- alarm(0);
DXChannel::closeall();
for (@main::listeners) {
$_->close_server;
}
- unless ($^O =~ /^MS/) {
+ unless ($main::is_win) {
$SIG{HUP} = 'IGNORE';
$SIG{CHLD} = $SIG{TERM} = $SIG{INT} = $SIG{__WARN__} = 'DEFAULT';
+ alarm(0);
}
exec "$line" or dbg('cron', "exec '$line' failed $!");
}