Added: Support for "@" and "*" records for enabled/disable dns and ip mode
switch. Only when only one site exists. Fixed: Smartermail domain retrieval to handle records with same domain name Fixed: Added not-domain dependendent services globaldnssupport upon space or domain creation
This commit is contained in:
parent
f067884ec4
commit
aafb82015b
14 changed files with 839 additions and 313 deletions
|
@ -651,7 +651,6 @@ namespace WebsitePanel.EnterpriseServer
|
|||
addressId = packageIp.AddressID;
|
||||
}
|
||||
|
||||
|
||||
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(siteItem.ServiceId);
|
||||
|
||||
foreach (GlobalDnsRecord d in dnsRecords)
|
||||
|
@ -668,6 +667,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
try
|
||||
{
|
||||
IPAddressInfo ip;
|
||||
|
||||
// remove all web site pointers
|
||||
DomainInfo domain = ServerController.GetDomain(siteItem.Name);
|
||||
DomainInfo ZoneInfo = ServerController.GetDomain(domain.ZoneName);
|
||||
|
@ -709,6 +710,27 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
}
|
||||
|
||||
List<WebSite> sites = WebServerController.GetWebSites(domain.PackageId, false);
|
||||
bool oneSiteOnly = (sites.Count == 1);
|
||||
|
||||
if (oneSiteOnly)
|
||||
{
|
||||
// load site item
|
||||
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
|
||||
|
||||
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
||||
|
||||
if (string.IsNullOrEmpty(serviceIp))
|
||||
{
|
||||
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
|
||||
if (settings["PublicSharedIP"] != null)
|
||||
serviceIp = settings["PublicSharedIP"].ToString();
|
||||
}
|
||||
|
||||
ServerController.RemoveServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
|
||||
}
|
||||
|
||||
|
||||
// update site item
|
||||
siteItem.SiteIPAddressId = addressId;
|
||||
PackageController.UpdatePackageItem(siteItem);
|
||||
|
@ -731,7 +753,7 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
|
||||
// load web site IP address
|
||||
IPAddressInfo ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
|
||||
ip = ServerController.GetIPAddress(siteItem.SiteIPAddressId);
|
||||
string ipAddr = "*";
|
||||
if (ip != null)
|
||||
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
||||
|
@ -748,10 +770,27 @@ namespace WebsitePanel.EnterpriseServer
|
|||
(b.Port == srvBinding.Port)))
|
||||
newBindings.Add(b);
|
||||
}
|
||||
|
||||
|
||||
|
||||
web.UpdateSiteBindings(siteItem.SiteId, newBindings.ToArray(), false);
|
||||
|
||||
if (oneSiteOnly)
|
||||
{
|
||||
sites = WebServerController.GetWebSites(domain.PackageId, false);
|
||||
|
||||
// load site item
|
||||
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
|
||||
|
||||
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
||||
|
||||
if (string.IsNullOrEmpty(serviceIp))
|
||||
{
|
||||
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
|
||||
if (settings["PublicSharedIP"] != null)
|
||||
serviceIp = settings["PublicSharedIP"].ToString();
|
||||
}
|
||||
|
||||
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -782,6 +821,8 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
try
|
||||
{
|
||||
IPAddressInfo ip;
|
||||
|
||||
DomainInfo domain = ServerController.GetDomain(siteItem.Name);
|
||||
DomainInfo ZoneInfo = ServerController.GetDomain(domain.ZoneName);
|
||||
|
||||
|
@ -825,6 +866,27 @@ namespace WebsitePanel.EnterpriseServer
|
|||
}
|
||||
|
||||
|
||||
List<WebSite> sites = WebServerController.GetWebSites(domain.PackageId, false);
|
||||
bool oneSiteOnly = (sites.Count == 1);
|
||||
|
||||
if (oneSiteOnly)
|
||||
{
|
||||
// load site item
|
||||
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
|
||||
|
||||
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
||||
|
||||
if (string.IsNullOrEmpty(serviceIp))
|
||||
{
|
||||
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
|
||||
if (settings["PublicSharedIP"] != null)
|
||||
serviceIp = settings["PublicSharedIP"].ToString();
|
||||
}
|
||||
|
||||
ServerController.RemoveServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
|
||||
}
|
||||
|
||||
|
||||
//figure out the PackageAddressId
|
||||
PackageIPAddress packageIpAddress = null;
|
||||
var siteIpAddresses = ServerController.GetItemIPAddresses(siteItemId, IPAddressPool.None);
|
||||
|
@ -858,6 +920,26 @@ namespace WebsitePanel.EnterpriseServer
|
|||
, ZoneInfo.DomainId, true, true, true);
|
||||
}
|
||||
|
||||
if (oneSiteOnly)
|
||||
{
|
||||
sites = WebServerController.GetWebSites(domain.PackageId, false);
|
||||
|
||||
// load site item
|
||||
ip = ServerController.GetIPAddress(sites[0].SiteIPAddressId);
|
||||
|
||||
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
||||
|
||||
if (string.IsNullOrEmpty(serviceIp))
|
||||
{
|
||||
StringDictionary settings = ServerController.GetServiceSettings(sites[0].ServiceId);
|
||||
if (settings["PublicSharedIP"] != null)
|
||||
serviceIp = settings["PublicSharedIP"].ToString();
|
||||
}
|
||||
|
||||
ServerController.AddServiceDNSRecords(domain.PackageId, ResourceGroups.Web, domain, serviceIp, true);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
@ -1171,13 +1253,25 @@ namespace WebsitePanel.EnterpriseServer
|
|||
domainTmp.WebSiteId = siteItemId;
|
||||
domainTmp.ZoneItemId = domain.ZoneItemId;
|
||||
domainTmp.DomainItemId = domainId;
|
||||
|
||||
|
||||
ServerController.UpdateDomain(domainTmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (domain.ZoneItemId > 0)
|
||||
{
|
||||
DomainInfo domainTmp = ServerController.GetDomain(string.IsNullOrEmpty(hostName) ? domain.DomainName : hostName + "." + domain.DomainName, true, true);
|
||||
if (domainTmp != null)
|
||||
{
|
||||
domainTmp.ZoneItemId = domain.ZoneItemId;
|
||||
ServerController.UpdateDomain(domainTmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue