X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=1d28e4024ced3cc3a71554ccd7f33aa08477b90d;hb=9cb17cdc59baad6fd8d175ec9a644575cdc8c5d5;hp=612e59b6c93e62fbefa1a52a6dc4823ed5e001a1;hpb=5aaaa0212b6bda5def233ffce515d889b8e547e7;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 612e59b6..1d28e402 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -225,6 +225,7 @@ sub init $main::me->{registered} = 1; $main::me->{version} = 5252 + $main::version; $main::me->{build} = $main::build; + $main::me->{lastcf} = $main::me->{lasthello} = time; } # @@ -238,12 +239,7 @@ sub new # add this node to the table, the values get filled in later my $pkg = shift; my $call = shift; - $main::routeroot->add($call, '5000', Route::here(1)) if $call ne $main::mycall; - if ($self->{call} ne $main::mycall) { - my $thing = Thingy::Hello->new(user=>$call); - $thing->broadcast($self); - } - + $main::routeroot->add($call, '5000', 1) if $call ne $main::mycall; return $self; } @@ -313,8 +309,10 @@ sub start $self->state('init'); $self->{pc50_t} = $main::systime; - my $thing = Thingy::Hello->new(origin=>$main::mycall, user=>$call); + # ALWAYS output the hello + my $thing = Thingy::Hello->new(user => $call, h => $self->{here}); $thing->broadcast($self); + $self->lasthello($main::systime); # send info to all logged in thingies $self->tell_login('loginn'); @@ -813,7 +811,7 @@ sub handle_16 } $r = Route::User::get($call); - my $flags = Route::here($here)|Route::conf($conf); + my $flags = $here; if ($r) { my $au = $r->addparent($parent); @@ -923,8 +921,8 @@ sub handle_18 # record the type and version offered if ($_[1] =~ /DXSpider Version: (\d+\.\d+) Build: (\d+\.\d+)/) { - $self->version(52.51 + $1); - $self->user->version(52.51 + $1); + $self->version(0 + $1); + $self->user->version(0 + $1); $self->build(0 + $2); $self->user->build(0 + $2); unless ($self->is_spider) { @@ -972,7 +970,7 @@ sub handle_19 if ($origin ne $self->call) { my $op = Route::Node::get($origin); unless ($op) { - $op = $parent->add($origin, 5000, Route::here(1)); + $op = $parent->add($origin, 5000, 1); my $user = DXUser->get_current($origin); if (!$user) { $user = DXUser->new($origin); @@ -1046,7 +1044,7 @@ sub handle_19 } my $r = Route::Node::get($call); - my $flags = Route::here($here)|Route::conf($conf); + my $flags = $here; # is he under the control of the new protocol? if ($r && $r->np) { @@ -1064,11 +1062,6 @@ sub handle_19 next; } } - if ($r->version ne $ver || $r->flags != $flags) { - $r->version($ver); - $r->flags($flags); - push @rout, $r unless $ar; - } } else { # if he is directly connected or allowed then add him, otherwise store him up for later @@ -1113,7 +1106,9 @@ sub handle_20 $self->{lastping} = 0; my $thing = Thingy::Rt->new(user=>$self->{call}); my $nref = Route::Node::get($self->{call}); - $thing->broadcast if $thing->copy_pc16_data($nref); + $thing->copy_pc16_data($nref); + $thing->broadcast; + $self->lastcf($main::systime); } @@ -1203,7 +1198,8 @@ sub handle_22 $self->{lastping} = 0; my $thing = Thingy::Rt->new(user=>$self->{call}); my $nref = Route::Node::get($self->{call}); - $thing->broadcast if $thing->copy_pc16_data($nref); + $thing->copy_pc16_data($nref); + $thing->broadcast; $self->lastcf($main::systime); }