5. fix talkmode so that it only does 'via' PC10s when it really needs to.
[spider.git] / cmd / connect.pl
index df9a42389c73dc38400c0b8f4b12dd3904855da0..b3b001819b5067fe49bd0fceeff728f36f7f6cba 100644 (file)
@@ -5,9 +5,10 @@ my $self = shift;
 my $call = uc shift;
 my $lccall = lc $call;
 
-return (0) if $self->priv < 8;
+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));
        }
 }