You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2011/05/10 17:28:25 UTC
svn commit: r1101506 -
/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
Author: arkurth
Date: Tue May 10 15:28:24 2011
New Revision: 1101506
URL: http://svn.apache.org/viewvc?rev=1101506&view=rev
Log:
VCL-469
Updated Windows.pm get_public_ip_address to handle a rare condition where a valid public IP address as well as an auto-generated IP address are both bound to the same interface name. Under this condition, the auto-generated address may have been returned causing problems. Code was updated to return the valid address if one is assigned.
Modified:
incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=1101506&r1=1101505&r2=1101506&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Tue May 10 15:28:24 2011
@@ -5367,7 +5367,21 @@ sub get_public_ip_address {
my $interface_name = (keys(%{$network_configuration}))[0];
my $ip_address_config = $network_configuration->{$interface_name}{ip_address};
- my $ip_address = (keys(%$ip_address_config))[0];
+
+ my $ip_address;
+
+ # If multiple IP addresses were found, loop through them until a public IP address was found
+ # If none of the addresses are public, use the first one found
+ for my $ip_address_check (keys(%$ip_address_config)) {
+ if (is_public_ip_address($ip_address_check)) {
+ $ip_address = $ip_address_check;
+ last;
+ }
+ elsif (!$ip_address) {
+ # Only set $ip_address for the first non-public address found
+ $ip_address = $ip_address_check;
+ }
+ }
my $dhcp_enabled = $network_configuration->{$interface_name}{dhcp_enabled};