added $@ and $! to see if we can store this stuff
[spider.git] / perl / DXProt.pm
index 67f64b79064616092577d3cbabab6629a26cc7ca..ff746b5e116667eb1bcd3954eaae913da5182155 100644 (file)
@@ -126,17 +126,23 @@ sub start
        $self->send_now('B',"0");
        $self->send_now('E',"0");
        
+       # ping neighbour node stuff
+       $self->pingint($user->pingint || 3*60);
+       $self->nopings(3);
+       $self->pingtime([ ]);
+
        # send initialisation string
-       if (!$self->{outbound}) {
+       unless ($self->{outbound}) {
                $self->send(pc38()) if DXNode->get_all();
                $self->send(pc18());
+               $self->lastping($main::systime);
+       } else {
+               # remove from outstanding connects queue
+               @main::outstanding_connects = grep {$_->{call} ne $call} @main::outstanding_connects;
+               $self->lastping($main::systime + $self->pingint / 2);
        }
        $self->state('init');
        $self->pc50_t(time);
-       $self->pingint($user->pingint || 3*60);
-       $self->nopings(3);
-       $self->lastping($main::systime);
-       $self->pingtime([ ]);
 
        Log('DXProt', "$call connected");
 }
@@ -716,7 +722,7 @@ sub normal
                                                                if ($tochan) {
                                                                        $tochan->nopings(3); # pump up the timer
                                                                        push @{$tochan->pingtime}, $t;
-                                                                       shift @{$tochan->pingtime} if @{$tochan->pingtime} > 10;
+                                                                       shift @{$tochan->pingtime} if @{$tochan->pingtime} > 6;
                                                                        my $st;
                                                                        for (@{$tochan->pingtime}) {
                                                                                $st += $_;
@@ -810,7 +816,7 @@ sub finish
        my $ref = DXCluster->get_exact($call);
        
        $self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op")));
-
+       
        # unbusy and stop and outgoing mail
        my $mref = DXMsg::get_busy($call);
        $mref->stop_msg($call) if $mref;