- my $ip;
- $part[1] //= '';
- $part[2] //= '';
- $part[3] //= '';
- if ($part[1] =~ /[,.]/) {
- $ip = $part[1];
- $part[1] = $part[2] = 0;
- } elsif ($part[3] =~ /[,.]/) {
- $ip = $part[3];
- }
- $ip =~ s/,/:/g if $ip;
- return ($call, $is_node, $is_extnode, $here, $part[1], $part[2], $ip);
+ my $version = $part[1] || 0;
+ my $build = $part[2] || 0;
+ my $ip = $part[3] || '';
+
+ if (is_ipaddr($version)) {
+ $ip = $version;
+ $version = 0;
+ }
+ $version =~ s/\D//g;
+ $build =~ s/^0\.//;
+ $build =~ s/\D//g;
+ if ($ip) {
+ $ip =~ s/,/:/g;
+ $ip =~ s/^::ffff://i;
+ }
+ dbg("$icall = '" . join("', '", $call, $is_node, $is_extnode, $here, $version, $build, $ip) . "'") if isdbg('pc92');
+ return ($call, $is_node, $is_extnode, $here, $version+0, $build+0, $ip);