From fe89ed6609c6422c150c9aba00a912b71bdb6031 Mon Sep 17 00:00:00 2001 From: robvde Date: Thu, 27 Sep 2012 16:48:40 +0400 Subject: [PATCH] Fixed: Web Sites: Add IP Address to binding when using dedicated ip addresses --- .../Code/WebServers/WebServerController.cs | 31 +++++++++++++++++-- .../WebsitePanel.EnterpriseServer/Web.config | 4 +-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs index 8cb32b80..5d9db239 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/WebServers/WebServerController.cs @@ -223,7 +223,7 @@ namespace WebsitePanel.EnterpriseServer StringDictionary webSettings = ServerController.GetServiceSettings(serviceId); int addressId = Utils.ParseInt(webSettings["SharedIP"], 0); - + bool dedicatedIp = false; if (packageAddressId != 0) { // dedicated IP @@ -231,6 +231,7 @@ namespace WebsitePanel.EnterpriseServer if (packageIp != null) { addressId = packageIp.AddressID; + dedicatedIp = true; } } @@ -258,6 +259,12 @@ namespace WebsitePanel.EnterpriseServer return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS; } + if (dedicatedIp) + { + // DEDICATED IP + bindings.Add(new ServerBinding(ipAddr, "80", "")); + } + UserInfo user = PackageController.GetPackageOwner(packageId); UserSettings webPolicy = UserController.GetUserSettings(user.UserId, UserSettings.WEB_POLICY); @@ -628,7 +635,6 @@ namespace WebsitePanel.EnterpriseServer if (addressId != 0) ServerController.AddItemIPAddress(siteItemId, addressId); - DomainInfo ZoneInfo = ServerController.GetDomain(domain.ZoneName); AddWebSitePointer(siteItemId, @@ -644,6 +650,27 @@ namespace WebsitePanel.EnterpriseServer , ZoneInfo.DomainId, true, true, true); } + + WebServer web = new WebServer(); + ServiceProviderProxy.Init(web, siteItem.ServiceId); + WebSite site = web.GetSite(siteItem.SiteId); + + List newBindings = new List(); + foreach (ServerBinding b in site.Bindings) + { + newBindings.Add(b); + } + + // load web site IP address + IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId); + string ipAddr = "*"; + if (ip != null) + ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP; + + newBindings.Add(new ServerBinding(ipAddr, "80", "")); + + web.UpdateSiteBindings(siteItem.SiteId, newBindings.ToArray(), false); + return 0; } catch (Exception ex) diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config index 3766094f..b78330c8 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Web.config @@ -5,11 +5,11 @@ - + - +