X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtHandle.pm;h=23c17f0c34177c4913e07e73d86532de462e1a13;hb=deb52e701a0db351d06eb6fe14872dc2fa7a51cb;hp=1ea3ebc97bd2cb1b3326eedc830ffe4ffdeb2737;hpb=007511abd2f678130afcc778d60bad0447411b0b;p=spider.git diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index 1ea3ebc9..23c17f0c 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -1560,7 +1560,6 @@ sub _decode_pc92_call my $ip; my $version = $part[1] || 0; my $build = $part[2] || 0; - $build =~ s/\D+//g; my $ip = $part[3] || ''; if ($version =~ /[,.]/) { @@ -1570,8 +1569,13 @@ sub _decode_pc92_call $version =~ s/\D+//g; $build =~ s/^0\.//; $build =~ s/\D+//g; - $ip =~ s/,/:/g if $ip; - return ($call, $is_node, $is_extnode, $here, $version, $build, $ip); + 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); } # decode a pc92 call: flag call : version : build @@ -1602,6 +1606,7 @@ sub _encode_pc92_call $ip =~ s/:/,/g; $extra .= ':' . $ip; } + return "$flag$call$extra"; } @@ -1618,11 +1623,6 @@ sub _add_thingy my ($call, $is_node, $is_extnode, $here, $version, $build, $ip) = @$s; my @rout; - # 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) {