X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=ff746b5e116667eb1bcd3954eaae913da5182155;hb=f3b23f65ec3e143910ec6a6c36cfe1ab37f0338c;hp=b4ff5f655f4701be2edcb151be015d5233b6c6cb;hpb=465426f9282b990ec3462c63e5ca7613f92fb290;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index b4ff5f65..ff746b5e 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -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 += $_; @@ -812,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;