+ my $call = $parent->call;
+ my $version = $ent[4] || 0;
+ my $build = $ent[5] || 0;
+ $build =~ s/^0\.//;
+ my $oldbuild = $parent->build || 0;
+ my $oldversion = $parent->version || 0;
+ my $user = check_add_user($parent->call, 'S');
+ my $oldsort = $user->sort // '';
+
+ dbg("PCPROT: PC92 K v: $version ov: $oldversion b: $build ob: $oldbuild pk: " . ($parent->K || '0') . " uk: " . ($user->K || 0)) if isdbg('pc92k');
+
+ if (is_numeric($version) || is_numeric($build)) {
+ my $changed = 0;
+ if (($oldversion ne $version || $build ne $oldbuild)) {
+ dbg("PCPROT: PC92 K node $call updated version: $version (was $oldversion) build: $build (was $oldbuild)");
+ $user->version($parent->version($version));
+ $user->build($parent->build($build));
+ ++$changed;
+ }
+ if ($oldsort ne 'S') {
+ dbg("PCPROT: PC92 K node $call updated sort: $sort (was $oldsort)");
+ $user->sort('S');
+ ++$changed;
+ }
+ unless ($user->K) {
+ dbg("PCPROT: PC92 K node $call updated - marked as PC92 K user");
+ $user->K(1);
+ ++$changed;
+ }
+ $user->put if $changed;
+ $parent->K(1); # mark this as come in on a K
+ } else {
+ dbg("DXProt PC92 K version call $call: invalid version: '$version' or build: '$version', ignored");