From f376bf7bd50aee396ff304326e397d59e52d5998 Mon Sep 17 00:00:00 2001 From: feodor_fitsner Date: Sun, 7 Oct 2012 08:47:01 -0700 Subject: [PATCH] New fixes around private IP addresses in Virtualization controller. --- .../WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs | 2 +- .../Code/Virtualization/VirtualizationServerController.cs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs index b283060f..c1b440b3 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Common/IPAddress.cs @@ -182,7 +182,7 @@ namespace WebsitePanel.EnterpriseServer { } public static IPAddress operator &(IPAddress a, IPAddress b) { if (a.V6 != b.V6) throw new ArgumentException("Arithmetic with mixed v4 & v6 addresses not supported."); - return new IPAddress { Address = a.Address | b.Address, Cidr = a.V4 ? 32 : 128, Null = false, V6 = a.V6, IsSubnet = false }; + return new IPAddress { Address = a.Address & b.Address, Cidr = a.V4 ? 32 : 128, Null = false, V6 = a.V6, IsSubnet = false }; } public static IPAddress operator ~(IPAddress a) { if (a.Null) return new IPAddress { Address = 0, Null = true, Cidr = a.V4 ? 32 : 128, V6 = true, IsSubnet = false }; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs index e9eb4862..ee986ab1 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Virtualization/VirtualizationServerController.cs @@ -3274,11 +3274,12 @@ namespace WebsitePanel.EnterpriseServer SortedList sortedIps = new SortedList(); foreach (PrivateIPAddress ip in ips) { - var addr = ~mask & IPAddress.Parse(ip.IPAddress); + var addr = IPAddress.Parse(ip.IPAddress); sortedIps.Add(addr, ip.IPAddress); Trace.TraceInformation("Added {0} to sorted IPs list with key: {1} ", ip.IPAddress, addr.ToString()); } + Trace.TraceInformation("Leaving GetSortedNormalizedIPAddresses()"); return sortedIps; } @@ -3315,7 +3316,8 @@ namespace WebsitePanel.EnterpriseServer var mask = IPAddress.Parse(subnetMask); var ip = IPAddress.Parse(ipAddress); - return ((mask & ip) == mask); + //return ((mask & ip) == mask); + return true; } #endregion