]> dxcluster.net Git - spider.git/blob - connect.pl
1f1ad03f640b76f53f1a59f8b1e8aecd678afb5e
[spider.git] / connect.pl
1 #
2 # connect a cluster station
3 #
4 my $self = shift;
5 my $call = uc shift;
6 my $lccall = lc $call;
7
8 return (1, $self->msg('e5')) if $self->priv < 5;
9 return (1, $self->msg('e6')) unless $call gt ' ';
10 return (1, $self->msg('already', $call)) if DXChannel->get($call);
11 return (1, $self->msg('outconn', $call)) if grep {$_->{call} eq $call} @main::outstanding_connects;
12 return (1, $self->msg('conscript', $lccall)) unless -e "$main::root/connect/$lccall";
13
14 my $user = DXUser->get($call);
15 return (1, $self->msg('lockout', $call)) if $user && $user->lockout;
16
17 my @out;
18 push @out, $self->msg('constart', $call);
19 my $fn = "$main::root/connect/$lccall";
20
21 my $f = new IO::File $fn;
22 if ($f) {
23         my @f = <$f>;
24         $f->close;
25         ExtMsg::start_connect($call, @f);
26 } else {
27         push @out, $self->msg('e3', 'connect', $fn);
28 }
29 return (1, @out);
30
31
32
33