From 3fc43037bf7fd30059d0308d2060c51950184352 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Fri, 12 Dec 2014 00:40:58 -0800 Subject: [PATCH 1/2] DomainLookup Task fixes --- WebsitePanel/Database/update_db.sql | 6 ++ .../OperatingSystemController.cs | 18 ----- .../SchedulerTasks/DomainExpirationTask.cs | 5 +- .../SchedulerTasks/DomainLookupViewTask.cs | 79 +++++++++++++++++- .../OS/IOperatingSystem.cs | 3 - .../Windows2003.cs | 59 -------------- .../Windows2012.cs | 68 ---------------- .../OperatingSystemProxy.cs | 81 ------------------- .../OperatingSystem.asmx.cs | 20 ----- .../DesktopModules/WebsitePanel/Domains.ascx | 2 +- .../WebsitePanel/Domains.ascx.cs | 27 +++++++ .../DomainLookupView.ascx.Designer.cs | 9 +++ .../DomainLookupView.ascx.resx | 3 + .../DomainLookupView.ascx | 7 ++ .../DomainLookupView.ascx.cs | 5 +- .../DomainLookupView.ascx.designer.cs | 18 +++++ 16 files changed, 155 insertions(+), 255 deletions(-) diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index 64ba4694..85f88de1 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -6178,6 +6178,12 @@ INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [D END GO +IF NOT EXISTS (SELECT * FROM [dbo].[ScheduleTaskParameters] WHERE [TaskID] = N'SCHEDULE_TASK_DOMAIN_LOOKUP' AND [ParameterID]= N'SERVER_NAME' ) +BEGIN +INSERT [dbo].[ScheduleTaskParameters] ([TaskID], [ParameterID], [DataTypeID], [DefaultValue], [ParameterOrder]) VALUES (N'SCHEDULE_TASK_DOMAIN_LOOKUP', N'SERVER_NAME', N'String', NULL, 3) +END +GO + -- Domain Expiration Task diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs index c3d2fa9f..89fe119a 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/OperatingSystems/OperatingSystemController.cs @@ -813,24 +813,6 @@ namespace WebsitePanel.EnterpriseServer - #endregion - - #region Domain DNS Records lookup - - public static List GetDomainRecords(int packageId, string domain, string dnsServer, DnsRecordType recordType) - { - List records = new List(); - - // load OS service - int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Os); - - var os = GetOS(serviceId); - - records = os.GetDomainDnsRecords(domain, dnsServer, recordType).ToList(); - - return records; - } - #endregion } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs index f3cbf413..3c08a751 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainExpirationTask.cs @@ -92,7 +92,7 @@ namespace WebsitePanel.EnterpriseServer foreach (var subDomain in subDomains) { - var mainDomain = topLevelDomains.Where(x => subDomain.DomainName.Contains(x.DomainName)).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; + var mainDomain = topLevelDomains.Where(x => subDomain.DomainName.ToLowerInvariant().Contains(x.DomainName.ToLowerInvariant())).OrderByDescending(s => s.DomainName.Length).FirstOrDefault(); ; if (mainDomain != null) { @@ -182,5 +182,8 @@ namespace WebsitePanel.EnterpriseServer // send mail message MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml); } + + + } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs index 20491ab1..bd3eca9b 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/SchedulerTasks/DomainLookupViewTask.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Net.Mail; using System.Text; +using System.Text.RegularExpressions; using WebsitePanel.Providers.DNS; using WebsitePanel.Providers.DomainLookup; using WebsitePanel.Server; @@ -20,6 +21,10 @@ namespace WebsitePanel.EnterpriseServer private static readonly string MailBodyTemplateParameter = "MAIL_BODY"; private static readonly string MailBodyDomainRecordTemplateParameter = "MAIL_DOMAIN_RECORD"; + private static readonly string ServerNameParameter = "SERVER_NAME"; + + private const string MxRecordPattern = @"mail exchanger = (.+)"; + private const string NsRecordPattern = @"nameserver = (.+)"; public override void DoWork() { @@ -29,6 +34,7 @@ namespace WebsitePanel.EnterpriseServer // get input parameters string dnsServersString = (string)topTask.GetParamValue(DnsServersParameter); + string serverName = (string)topTask.GetParamValue(ServerNameParameter); // check input parameters if (String.IsNullOrEmpty(dnsServersString)) @@ -43,6 +49,17 @@ namespace WebsitePanel.EnterpriseServer return; } + // find server by name + ServerInfo server = ServerController.GetServerByName(serverName); + if (server == null) + { + TaskManager.WriteWarning(String.Format("Server with the name '{0}' was not found", serverName)); + return; + } + + WindowsServer winServer = new WindowsServer(); + ServiceProviderProxy.ServerInit(winServer, server.ServerId); + var user = UserController.GetUser(topTask.UserId); var dnsServers = dnsServersString.Split(';'); @@ -74,8 +91,8 @@ namespace WebsitePanel.EnterpriseServer //execute server foreach (var dnsServer in dnsServers) { - var dnsMxRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.MX); - var dnsNsRecords = OperatingSystemController.GetDomainRecords(domain.PackageId, domain.DomainName, dnsServer, DnsRecordType.NS); + var dnsMxRecords = GetDomainDnsRecords(winServer, domain.DomainName, dnsServer, DnsRecordType.MX); + var dnsNsRecords = GetDomainDnsRecords(winServer, domain.DomainName, dnsServer, DnsRecordType.NS); FillRecordData(dnsMxRecords, domain, dnsServer); FillRecordData(dnsNsRecords, domain, dnsServer); @@ -123,7 +140,7 @@ namespace WebsitePanel.EnterpriseServer return changedDomains; } - private IEnumerable ApplyDomainRecordsChanges(List dbRecords, List dnsRecords, string dnsServer) + private IEnumerable ApplyDomainRecordsChanges(IEnumerable dbRecords, List dnsRecords, string dnsServer) { var dnsRecordChanges = new List(); @@ -240,6 +257,62 @@ namespace WebsitePanel.EnterpriseServer MailHelper.SendMessage(from, mailTo, bcc, subject, body, priority, isHtml); } + public List GetDomainDnsRecords(WindowsServer winServer, string domain, string dnsServer, DnsRecordType recordType) + { + //nslookup -type=mx google.com 195.46.39.39 + var command = "nslookup"; + var args = string.Format("-type={0} {1} {2}", recordType, domain, dnsServer); + + // execute system command + var raw = winServer.ExecuteSystemCommand(command, args); + + var records = ParseNsLookupResult(raw, dnsServer, recordType); + + return records.ToList(); + } + + private IEnumerable ParseNsLookupResult(string raw, string dnsServer, DnsRecordType recordType) + { + var records = new List(); + + var recordTypePattern = string.Empty; + + switch (recordType) + { + case DnsRecordType.NS: + { + recordTypePattern = NsRecordPattern; + break; + } + case DnsRecordType.MX: + { + recordTypePattern = MxRecordPattern; + break; + } + } + + var regex = new Regex(recordTypePattern, RegexOptions.IgnoreCase); + + foreach (Match match in regex.Matches(raw)) + { + if (match.Groups.Count != 2) + { + continue; + } + + var dnsRecord = new DnsRecordInfo + { + Value = match.Groups[1].Value != null ? match.Groups[1].Value.Replace("\r\n", "").Replace("\r", "").Replace("\n", "").Trim() : null, + RecordType = recordType, + DnsServer = dnsServer + }; + + records.Add(dnsRecord); + } + + return records; + } + #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs index 5b311b48..994f1713 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.Base/OS/IOperatingSystem.cs @@ -91,8 +91,5 @@ namespace WebsitePanel.Providers.OS // File Services bool CheckFileServicesInstallation(); - - //DNS - DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType); } } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs index 131cf2f1..939077c3 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2003/Windows2003.cs @@ -58,8 +58,6 @@ namespace WebsitePanel.Providers.OS private const string MSEXCEL_DRIVER = "Microsoft Excel Driver (*.xls)"; private const string TEXT_DRIVER = "Microsoft Text Driver (*.txt; *.csv)"; - private const string MXRECORDPATTERN = @"mail exchanger = (.+)"; - private const string NSRECORDPATTERN = @"nameserver = (.+)"; #endregion #region Properties @@ -751,63 +749,6 @@ namespace WebsitePanel.Providers.OS } #endregion - - - public virtual DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) - { - //nslookup -type=mx google.com 195.46.39.39 - var command = "nslookup"; - var args = string.Format("-type={0} {1} {2}", recordType, domain, dnsServer); - - var raw = FileUtils.ExecuteSystemCommand(command, args); - - var records = ParseNsLookupResult(raw, dnsServer, recordType); - - return records.ToArray(); - } - - private IEnumerable ParseNsLookupResult(string raw, string dnsServer, DnsRecordType recordType) - { - var records = new List(); - - var recordTypePattern = string.Empty; - - switch (recordType) - { - case DnsRecordType.NS: - { - recordTypePattern = NSRECORDPATTERN; - break; - } - case DnsRecordType.MX: - { - recordTypePattern = MXRECORDPATTERN; - break; - } - } - - var regex = new Regex(recordTypePattern, RegexOptions.IgnoreCase); - - foreach (Match match in regex.Matches(raw)) - { - if (match.Groups.Count != 2) - { - continue; - } - - var dnsRecord = new DnsRecordInfo - { - Value = match.Groups[1].Value != null ? match.Groups[1].Value.Replace("\r\n", "").Replace("\r", "").Replace("\n", "").Trim() : null, - RecordType = recordType, - DnsServer = dnsServer - }; - - records.Add(dnsRecord); - } - - return records; - } - public override bool IsInstalled() { return WebsitePanel.Server.Utils.OS.GetVersion() == WebsitePanel.Server.Utils.OS.WindowsVersion.WindowsServer2003; diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs index b04d5767..2622425f 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.OS.Windows2012/Windows2012.cs @@ -299,74 +299,6 @@ namespace WebsitePanel.Providers.OS ExecuteShellCommand(runSpace, cmd, false); } - #region Domain LookUp - - //public override DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) - //{ - // List records = new List(); - - // Runspace runSpace = null; - - // try - // { - // runSpace = OpenRunspace(); - - // Command cmd = new Command("Resolve-DnsName"); - // cmd.Parameters.Add("Name", domain); - // cmd.Parameters.Add("Server", dnsServer); - // cmd.Parameters.Add("Type", recordType.ToString()); - - // var dnsRecordsPs = ExecuteShellCommand(runSpace, cmd, false); - - // if (dnsRecordsPs != null) - // { - // foreach (var dnsRecordPs in dnsRecordsPs) - // { - // DnsRecordInfo newRecord = null; - - // switch (recordType) - // { - // case DnsRecordType.MX: { newRecord = CreateDnsRecordFromPsObject(dnsRecordPs, "NameExchange"); break; } - // case DnsRecordType.NS: { newRecord = CreateDnsRecordFromPsObject(dnsRecordPs, "NameHost"); break; } - // default: continue; - // } - - // if (newRecord != null) - // { - // newRecord.DnsServer = dnsServer; - // newRecord.RecordType = recordType; - - // records.Add(newRecord); - // } - // } - - // } - // } - // finally - // { - // CloseRunspace(runSpace); - // } - - // return records.ToArray(); - //} - - private DnsRecordInfo CreateDnsRecordFromPsObject(PSObject psObject, string valueName) - { - if (!psObject.Members.Any(x => x.Name == valueName)) - { - return null; - } - - var dnsRecord = new DnsRecordInfo - { - Value = Convert.ToString(GetPSObjectProperty(psObject, valueName)), - }; - - return dnsRecord; - } - - #endregion - #region PowerShell integration private static InitialSessionState session = null; diff --git a/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs b/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs index bd8dc161..56382922 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server.Client/OperatingSystemProxy.cs @@ -18,8 +18,6 @@ namespace WebsitePanel.Providers.OS { using System.Web.Services.Protocols; using System; using System.Diagnostics; - using WebsitePanel.Providers.DNS; - using WebsitePanel.Providers.DomainLookup; /// @@ -114,8 +112,6 @@ namespace WebsitePanel.Providers.OS { private System.Threading.SendOrPostCallback DeleteDSNOperationCompleted; - private System.Threading.SendOrPostCallback GetDomainDnsRecordsOperationCompleted; - /// public OperatingSystem() { this.Url = "http://localhost:9003/OperatingSystem.asmx"; @@ -244,9 +240,6 @@ namespace WebsitePanel.Providers.OS { /// public event DeleteDSNCompletedEventHandler DeleteDSNCompleted; - /// - public event GetDomainDnsRecordsCompletedEventHandler GetDomainDnsRecordsCompleted; - /// [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CreatePackageFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] @@ -2017,54 +2010,6 @@ namespace WebsitePanel.Providers.OS { } } - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetDomainDnsRecords", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) { - object[] results = this.Invoke("GetDomainDnsRecords", new object[] { - domain, - dnsServer, - recordType}); - return ((DnsRecordInfo[])(results[0])); - } - - /// - public System.IAsyncResult BeginGetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType, System.AsyncCallback callback, object asyncState) { - return this.BeginInvoke("GetDomainDnsRecords", new object[] { - domain, - dnsServer, - recordType}, callback, asyncState); - } - - /// - public DnsRecordInfo[] EndGetDomainDnsRecords(System.IAsyncResult asyncResult) { - object[] results = this.EndInvoke(asyncResult); - return ((DnsRecordInfo[])(results[0])); - } - - /// - public void GetDomainDnsRecordsAsync(string domain, string dnsServer, DnsRecordType recordType) { - this.GetDomainDnsRecordsAsync(domain, dnsServer, recordType, null); - } - - /// - public void GetDomainDnsRecordsAsync(string domain, string dnsServer, DnsRecordType recordType, object userState) { - if ((this.GetDomainDnsRecordsOperationCompleted == null)) { - this.GetDomainDnsRecordsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainDnsRecordsOperationCompleted); - } - this.InvokeAsync("GetDomainDnsRecords", new object[] { - domain, - dnsServer, - recordType}, this.GetDomainDnsRecordsOperationCompleted, userState); - } - - private void OnGetDomainDnsRecordsOperationCompleted(object arg) { - if ((this.GetDomainDnsRecordsCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetDomainDnsRecordsCompleted(this, new GetDomainDnsRecordsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - /// public new void CancelAsync(object userState) { base.CancelAsync(userState); @@ -2674,30 +2619,4 @@ namespace WebsitePanel.Providers.OS { /// [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] public delegate void DeleteDSNCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] - public delegate void GetDomainDnsRecordsCompletedEventHandler(object sender, GetDomainDnsRecordsCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetDomainDnsRecordsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetDomainDnsRecordsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public DnsRecordInfo[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((DnsRecordInfo[])(this.results[0])); - } - } - } } diff --git a/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs b/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs index 20c80ca2..fbc692cb 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.Server/OperatingSystem.asmx.cs @@ -741,25 +741,5 @@ namespace WebsitePanel.Server } #endregion - #region Dns - - [WebMethod, SoapHeader("settings")] - public DnsRecordInfo[] GetDomainDnsRecords(string domain, string dnsServer, DnsRecordType recordType) - { - try - { - Log.WriteStart("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName); - var result = OsProvider.GetDomainDnsRecords(domain, dnsServer, recordType); - Log.WriteEnd("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName); - return result; - } - catch (Exception ex) - { - Log.WriteError(String.Format("'{0}' GetDomainDnsRecords", ProviderSettings.ProviderName), ex); - throw; - } - } - - #endregion } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx index 3928f348..8dc31afd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx @@ -42,7 +42,7 @@ <%# GetDomainExpirationDate(Eval("ExpirationDate"), Eval("LastUpdateDate"))%> -
+
">
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs index 2a5f8f80..da0f5a67 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Domains.ascx.cs @@ -124,6 +124,33 @@ namespace WebsitePanel.Portal } } + public bool ShowDomainDnsInfo(object expirationDateObject, object LastUpdateDateObject, bool isTopLevelDomain) + { + var expirationDate = expirationDateObject as DateTime?; + var lastUpdateDate = LastUpdateDateObject as DateTime?; + + if (!isTopLevelDomain) + { + return false; + } + else if (expirationDate != null && expirationDate < DateTime.Now) + { + return false; + } + else if(expirationDate != null) + { + return true; + } + else if (lastUpdateDate == null) + { + return false; + } + else + { + return false; + } + } + public string GetDomainDnsRecords(int domainId) { var records = ES.Services.Servers.GetDomainDnsRecords(domainId); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs index a654215f..14bdff31 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.Designer.cs @@ -78,5 +78,14 @@ namespace WebsitePanel.Portal.ScheduleTaskControls.App_LocalResources { return ResourceManager.GetString("lblDnsServersHint", resourceCulture); } } + + /// + /// Looks up a localized string similar to Server Name:. + /// + internal static string lblServerName { + get { + return ResourceManager.GetString("lblServerName", resourceCulture); + } + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx index 21183eb3..3bfff31e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/App_LocalResources/DomainLookupView.ascx.resx @@ -123,4 +123,7 @@ Please enter dns servers to check. + + Server Name: + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx index 56abdaa9..7034bce6 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx @@ -1,6 +1,13 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DomainLookupView.ascx.cs" Inherits="WebsitePanel.Portal.ScheduleTaskControls.DomainLookupView" %> + + +
+ Server Name: + + +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs index 089d2a4d..8e6dc106 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.cs @@ -13,6 +13,7 @@ namespace WebsitePanel.Portal.ScheduleTaskControls { private static readonly string DnsServersParameter = "DNS_SERVERS"; private static readonly string MailToParameter = "MAIL_TO"; + private static readonly string ServerNameParameter = "SERVER_NAME"; protected void Page_Load(object sender, EventArgs e) { @@ -29,6 +30,7 @@ namespace WebsitePanel.Portal.ScheduleTaskControls this.SetParameter(this.txtDnsServers, DnsServersParameter); this.SetParameter(this.txtMailTo, MailToParameter); + this.SetParameter(this.txtServerName, ServerNameParameter); } /// @@ -39,8 +41,9 @@ namespace WebsitePanel.Portal.ScheduleTaskControls { ScheduleTaskParameterInfo dnsServers = this.GetParameter(this.txtDnsServers, DnsServersParameter); ScheduleTaskParameterInfo mailTo = this.GetParameter(this.txtMailTo, MailToParameter); + ScheduleTaskParameterInfo serverName = this.GetParameter(this.txtServerName, ServerNameParameter); - return new ScheduleTaskParameterInfo[2] { dnsServers, mailTo }; + return new ScheduleTaskParameterInfo[3] { dnsServers, mailTo, serverName }; } } } \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs index f9c000f5..cfc285be 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ScheduleTaskControls/DomainLookupView.ascx.designer.cs @@ -12,6 +12,24 @@ namespace WebsitePanel.Portal.ScheduleTaskControls { public partial class DomainLookupView { + /// + /// lblServerName control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label lblServerName; + + /// + /// txtServerName control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtServerName; + /// /// lblDnsServers control. /// From 6fcfa205f5099e2901b1c4232a0b48de7a7c4c58 Mon Sep 17 00:00:00 2001 From: vfedosevich Date: Fri, 12 Dec 2014 02:34:59 -0800 Subject: [PATCH 2/2] Domain Lookup Tasks Fixes --- .../Lib/References/Whois.NET/WhoisClient.dll | Bin 15872 -> 20480 bytes .../SchedulerTasks/DomainLookupViewTask.cs | 2 +- .../Servers/ServerController.cs | 6 ++++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/WebsitePanel/Lib/References/Whois.NET/WhoisClient.dll b/WebsitePanel/Lib/References/Whois.NET/WhoisClient.dll index 27a75771cb9d030976a65a2d42d0f8761e0b7495..5abd05052307250bbc2f5028d0bc8c584e507983 100644 GIT binary patch literal 20480 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 delta 6342 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 _createdDatePatterns = new List { @"Creation Date:(.+)", // base @"created:(.+)", + @"Created On:(.+) UTC", @"Created On:(.+)", @"Domain Registration Date:(.+)", @"Domain Create Date:(.+)", @"Registered on:(.+)"}; - private static List _expiredDatePatterns = new List { @"Expiration Date:(.+)", // base + private static List _expiredDatePatterns = new List { @"Expiration Date:(.+) UTC", //base UTC + @"Expiration Date:(.+)", // base @"Registry Expiry Date:(.+)", //.org @"paid-till:(.+)", //.ru @"Expires On:(.+)", //.name @@ -2682,7 +2684,7 @@ namespace WebsitePanel.EnterpriseServer { DataProvider.UpdateDomainLastUpdateDate(domain.DomainId, DateTime.Now); - var whoisResult = WhoisClient.Query(domain.DomainName); + var whoisResult = WhoisClient.Query(domain.DomainName.ToLowerInvariant()); var createdDate = GetDomainInfoDate(whoisResult.Raw, _createdDatePatterns); var expiredDate = GetDomainInfoDate(whoisResult.Raw, _expiredDatePatterns);