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:
robvde 2012-10-25 13:35:07 +04:00
parent f067884ec4
commit aafb82015b
14 changed files with 839 additions and 313 deletions

View file

@ -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;
}