added offest to outgoing ping times
[spider.git] / perl / DXProt.pm
index b4ff5f655f4701be2edcb151be015d5233b6c6cb..b8d563979b762f12e7e0ebf7db3ed37560a956aa 100644 (file)
@@ -126,19 +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");
 }
@@ -718,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 += $_;