X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtHandle.pm;h=71aaea80c2226432101888519f2a065fff7b83bd;hb=a8cf7419289d41680724331cf388e7df68327c3d;hp=3ba13b47193d468328b8ea55d271dfcba8f6986f;hpb=560afad02a093c77df28d9297b5825c465ff963e;p=spider.git diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index 3ba13b47..71aaea80 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -1558,7 +1558,7 @@ sub _decode_pc92_call my $ip; $part[1] //= ''; $part[2] //= ''; - $part[2] //= ''; + $part[3] //= ''; if ($part[1] =~ /[,.]/) { $ip = $part[1]; $part[1] = $part[2] = 0; @@ -1615,7 +1615,9 @@ sub _add_thingy # remove spurious IPV6 prefix on IPV4 addresses $ip =~ s/^::ffff:// if $ip; - + $build //= 0; + $version //= 0; + if ($call) { my $ncall = $parent->call; if ($ncall ne $call) { @@ -1629,7 +1631,7 @@ sub _add_thingy next if DXChannel::get($call); $user = DXUser::get($call); dbg("DXProt::_add_thingy call $call normalised to $normcall, deleting spurious user $call"); - $user->del; + $user->del if $user; $call = $normcall; # this is safe because a route add will ignore duplicates } @@ -1639,13 +1641,12 @@ sub _add_thingy @rout = $parent->add($call, $version, Route::here($here), $ip); $r = Route::Node::get($call); $r->PC92C_dxchan($dxchan->call, $hops) if $r; - if ($version && $version =~ /\d+/) { + if ($version && $version =~ /^\d+$/) { my $old = $user->sort; - if ($user->is_ak1a && (($version >= 5455 && defined $build && $build > 0) || ($version >= 3000 && $version <= 3500)) ) { + if ($user->is_ak1a && (($version >= 5455 && $build > 0) || ($version >= 3000 && $version <= 3500)) ) { $user->sort('S'); - $build //= 0; dbg("PCProt::_add_thingy node $call v: $version b: $build sort ($old) updated to " . $user->sort); - } elsif ($user->is_spider && ($version < 3000 || ($version > 4000 && $version < 5455)) && $version =~ /^\d+$/) { + } elsif ($user->is_spider && $version =~ /^\d+$/ && ($version < 3000 || ($version > 4000 && $version < 5455))) { unless ($version == 5000 && $build == 0) { $user->sort('A'); $build //= 0; @@ -2002,7 +2003,7 @@ sub handle_92 $oldbuild =~ s/^0\.//; my $oldversion = $parent->version // 0; my $user = check_add_user($parent->call, 'S'); - my $oldsort = $user->sort; + my $oldsort = $user->sort // ''; if ($oldsort ne 'S' || $oldversion != $version || $build != $oldbuild) { dbg("PCProt PC92 K node $call updated version: $version (was $oldversion) build: $build (was $oldbuild) sort: 'S' (was $oldsort)"); $user->sort('S');