Author: locilka Date: Tue Jul 22 20:13:48 2008 New Revision: 49333 URL: http://svn.opensuse.org/viewcvs/yast?rev=49333&view=rev Log: - Added new DnsServerAPI::GetReverseIPforIPv6 function. Modified: trunk/yast2/library/network/src/DnsServerAPI.pm trunk/yast2/package/yast2.changes Modified: trunk/yast2/library/network/src/DnsServerAPI.pm URL: http://svn.opensuse.org/viewcvs/yast/trunk/yast2/library/network/src/DnsServerAPI.pm?rev=49333&r1=49332&r2=49333&view=diff ============================================================================== --- trunk/yast2/library/network/src/DnsServerAPI.pm (original) +++ trunk/yast2/library/network/src/DnsServerAPI.pm Tue Jul 22 20:13:48 2008 @@ -2320,7 +2320,7 @@ return undef if !Init(); - return undef if (!$class->CheckIPv4($ipv4)); + return undef if (!IP->Check($ipv4)); my $reverseip = 'in-addr.arpa.'; foreach my $part (split(/\./, $ipv4)) { @@ -2331,6 +2331,70 @@ } =item * +C<$reverseip = GetReverseIPforIPv6($ipv6);> + +Returns reverse ip for IPv6. + +EXAMPLE: + + my $reverseip = GetReverseIPforIPv6('3ffe:ffff::1'); + -> '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.f.f.e.f.f.3.ip6.arpa.' + my $reverseip = GetReverseIPforIPv6('3ffe:ffff::210:a4ff:fe01:1'); + -> '1.0.0.0.1.0.e.f.f.f.4.a.0.1.2.0.0.0.0.0.0.0.0.0.f.f.f.f.e.f.f.3.ip6.arpa.' + my $reverseip = GetReverseIPforIPv6('3ffe:ffff::'); + -> '0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.f.f.e.f.f.3.ip6.arpa.' + +=cut + +BEGIN{$TYPEINFO{GetReverseIPforIPv6} = ["function","string","string"]}; +sub GetReverseIPforIPv6 { + my $class = shift; + my $ipv6 = shift || ''; + + return undef if !Init(); + + return undef if (!IP->Check6($ipv6)); + + my $reverseip = 'ip6.arpa.'; + + if ($ipv6 =~ /::/) { + my $part_before = $ipv6; + $part_before =~ s/(.*)::.*/$1/; + + my $part_after = $ipv6; + $part_after =~ s/.*::(.*)/$1/; + + my @part_before_full = (); + my @part_after_full = (); + + foreach my $part (split /:/, $part_before) { + $part = sprintf ("%04s", $part); + push @part_before_full, $part; + } + + foreach my $part (split /:/, $part_after) { + $part = sprintf ("%04s", $part); + push @part_after_full, $part; + } + + my $zeros = 32 - 4 * (scalar (@part_before_full) + scalar (@part_after_full)); + $zeros = "0"x${zeros}; + + $ipv6 = join ("", @part_before_full); + $ipv6 .= $zeros; + $ipv6 .= join ("", @part_after_full); + } + + foreach my $part (split /:/, $ipv6) { + foreach my $letter (split //, $part) { + $reverseip = $letter.'.'.$reverseip; + } + } + + return $reverseip; +} + +=item * C<$reverseip = AddHost($zone, $hostname, $ipv4);> Function adds forward and reverse records into the administered zones. Modified: trunk/yast2/package/yast2.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/yast2/package/yast2.changes?rev=49333&r1=49332&r2=49333&view=diff ============================================================================== --- trunk/yast2/package/yast2.changes (original) +++ trunk/yast2/package/yast2.changes Tue Jul 22 20:13:48 2008 @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Tue Jul 22 20:12:41 CEST 2008 - locilka@suse.cz + +- Added new DnsServerAPI::GetReverseIPforIPv6 function. + +------------------------------------------------------------------- Thu Jul 17 12:25:25 CEST 2008 - jsuchome@suse.cz - ag_anyxml: return every value as string (bnc#409491) -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org