X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fconnect.pl;h=d1c583cbd3d6a7f3a65a7062bd373523d34c48af;hb=33c95e70cc90be9f60c4efd73717386b299048f7;hp=7fb3b7f4cc40789039ad6186e862abb4e9637bc7;hpb=8a0f0fc3c54895f0ce8b0207e42af1f693d757f6;p=spider.git diff --git a/cmd/connect.pl b/cmd/connect.pl index 7fb3b7f4..d1c583cb 100644 --- a/cmd/connect.pl +++ b/cmd/connect.pl @@ -3,22 +3,22 @@ # my $self = shift; my $call = uc shift; -return (0) if $self->priv < 9; -return (1, $self->msg('already', $call)) if DXChannel::get($call); +my $lccall = lc $call; -my $prog = "$main::root/local/client.pl"; -$prog = "$main::root/perl/client.pl" if ! -e $prog; +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 $user = DXUser->get($call); +return (1, $self->msg('lockout', $call)) if $user && $user->lockout; + +my @out; +push @out, $self->msg('constart', $call); +ExtMsg::start_connect($call, "$main::root/connect/$lccall"); +return (1, @out); -my $pid = fork(); -if (defined $pid) { - if (!$pid) { - # in child - exec $prog, $call, 'connect'; - } else { - return(1, $self->msg('constart', $call)); - } -} -return (0, $self->msg('confail', $call, $!))