Change DXUser->get* to DXUser::get*
[spider.git] / cmd / connect.pl
index b3b001819b5067fe49bd0fceeff728f36f7f6cba..fd893974bb3673dfd87b921f1833afc7749a5a0d 100644 (file)
@@ -7,32 +7,18 @@ 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('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";
-$prog = "$main::root/perl/client.pl" if ! -e $prog;
+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, unset warnings, disable debugging and general clean up from us
-               $^W = 0;
-               $SIG{HUP} = 'IGNORE';
-               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));
-       }
-}
-return (0, $self->msg('confail', $call, $!))