X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtHandle.pm;h=e7160d7cb7148b0e59e5a809cd63258163f0e7b4;hb=ab811a0c902225075a9bd69749f65594079433a9;hp=b1726e98a1f4ae6ac184374d497f3943c6132f07;hpb=d8b9ca222a816c470dfd9455e09b1a861f8624a1;p=spider.git diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index b1726e98..e7160d7c 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -226,7 +226,7 @@ sub handle_11 # # fix up qra locators of known users - my $user = DXUser->get_current($spot[4]); + my $user = DXUser::get_current($spot[4]); if ($user) { my $qra = $user->qra; unless ($qra && is_qra($qra)) { @@ -273,7 +273,7 @@ sub handle_11 } # local processing - if (defined *Local::spot) { + if (defined &Local::spot) { my $r; eval { $r = Local::spot($self, @spot); @@ -360,7 +360,7 @@ sub handle_12 } # local processing - if (defined *Local::ann) { + if (defined &Local::ann) { my $r; eval { $r = Local::ann($self, $line, @_[1..6]); @@ -463,7 +463,7 @@ sub handle_16 # reject this if we think it is a node already my $r = Route::Node::get($call); - my $u = DXUser->get_current($call) unless $r; + my $u = DXUser::get_current($call) unless $r; if ($r || ($u && $u->is_node)) { dbg("PCPROT: $call is a node") if isdbg('chanerr'); next; @@ -485,7 +485,7 @@ sub handle_16 } # add this station to the user database, if required - my $user = DXUser->get_current($ncall); + my $user = DXUser::get_current($ncall); $user = DXUser->new($call) unless $user; $user->homenode($parent->call) if !$user->homenode; $user->node($parent->call); @@ -568,7 +568,7 @@ sub handle_17 $parent->del_user($uref); # send info to all logged in thingies - my $user = DXUser->get_current($ncall); + my $user = DXUser::get_current($ncall); $self->tell_login('logoutu', "$ncall: $ucall") if $user && $user->is_local_node; $self->tell_buddies('logoutb', $ucall, $ncall); @@ -638,7 +638,7 @@ sub check_add_node my $call = shift; # add this station to the user database, if required (don't remove SSID from nodes) - my $user = DXUser->get_current($call); + my $user = DXUser::get_current($call); if (!$user) { $user = DXUser->new($call); $user->priv(1); # I have relented and defaulted nodes @@ -947,7 +947,7 @@ sub handle_23 # note this only takes the first one it gets Geomag::update($d, $_[2], $sfi, $k, $i, @_[6..8], $r); - if (defined *Local::wwv) { + if (defined &Local::wwv) { my $rep; eval { $rep = Local::wwv($self, $_[1], $_[2], $sfi, $k, $i, @_[6..8], $r); @@ -1142,7 +1142,7 @@ sub handle_41 } # add this station to the user database, if required - my $user = DXUser->get_current($call); + my $user = DXUser::get_current($call); $user = DXUser->new($call) unless $user; if ($sort == 1) { @@ -1318,7 +1318,7 @@ sub handle_73 my $wcy = WCY::update($d, @_[2..12]); - if (defined *Local::wcy) { + if (defined &Local::wcy) { my $rep; eval { $rep = Local::wcy($self, @_[1..12]); @@ -1536,6 +1536,13 @@ sub check_pc9x_t } elsif ($t == $lastid) { dbg("PCPROT: dup id on $t == lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe'); return undef; + } else { + # check that if we have a low number in lastid that yesterday's numbers + # (likely in the 85000+ area) don't override them, thus causing flip flopping + if ($lastid+86400-$t < $pc9x_past_age) { + dbg("PCPROT: dup id on $t in yesterday, lastid $lastid, ignored") if isdbg('chanerr') || isdbg('pc92dedupe'); + return undef; + } } } }