X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fconnect.pl;h=b3b001819b5067fe49bd0fceeff728f36f7f6cba;hb=1566a1eefdf276e28698fc0e94b1cf3113fc25d5;hp=14f94bb3e4a93c31924091dc7b4b500dac28ff6f;hpb=dc999e28c96ebb4589dbdda8435a548ade15a37d;p=spider.git diff --git a/cmd/connect.pl b/cmd/connect.pl index 14f94bb3..b3b00181 100644 --- a/cmd/connect.pl +++ b/cmd/connect.pl @@ -8,6 +8,7 @@ my $lccall = lc $call; return (1, $self->msg('e5')) if $self->priv < 5; return (1, $self->msg('e6')) unless $call gt ' '; return (1, $self->msg('already', $call)) if DXChannel->get($call); +return (1, $self->msg('outconn', $call)) if grep {$_->{call} eq $call} @main::outstanding_connects; return (1, $self->msg('conscript', $lccall)) unless -e "$main::root/connect/$lccall"; my $prog = "$main::root/local/client.pl"; @@ -22,10 +23,12 @@ if (defined $pid) { eval "{ package DB; sub DB {} }"; alarm(0); DXChannel::closeall(); + Msg::close_server(); $SIG{CHLD} = $SIG{TERM} = $SIG{INT} = $SIG{__WARN__} = 'DEFAULT'; exec $prog, $call, 'connect'; } else { sleep(1); # do a coordination + push @main::outstanding_connects, {call => $call, pid => $pid}; return(1, $self->msg('constart', $call)); } }