public ServerStatusActionResult RepairBindSecurity() { WindowsUser namedUser = findWindowsUser(); if (namedUser == null) { throw new Exception( "Cannot repair when user '" + iscBindUser + "' does not exist."); } IscBindSetup setup = new IscBindSetup( ServerConfig.IscBindDirectory.FullName, namedUser.Sid); setup.IntitializeSecurity(); ServerStatusActionResult r = new ServerStatusActionResult(); if (getIscBindSecurityStatus().Condition == ServerStatusCondition.Normal) { r.Success = true; r.UserMessage = "Security has been repaired."; } else { r.Success = false; r.UserMessage = "Security was not repaired."; } return(r); }
public ServerStatusActionResult RepairBindConfig() { WindowsUser namedUser = findWindowsUser(); if (namedUser == null) { throw new Exception( "Cannot repair when user '" + iscBindUser + "' does not exist."); } string iscBindDirectory = ServerConfig.IscBindDirectory.FullName; IscBindSetup bindSetup = new IscBindSetup(iscBindDirectory, namedUser.Sid); // Backup existing configs and replace with new one. bindSetup.InitializeConfig(); // Regenerate zone config file in case it's corrupt. IscBindManager bindManager = CreateManager <IscBindManager>(); bindManager.RegenerateMainConfigFile(); ServiceController sc = getIscBindServiceController(); if (sc.Status == ServiceControllerStatus.Running) { sc.Stop(); sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(10)); } sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(10)); ServerStatusActionResult result = new ServerStatusActionResult(); if (sc.Status == ServiceControllerStatus.Running) { result.Success = true; result.UserMessage = "The configuration was repaired, and the ISC BIND service was restarted."; } else { result.Success = false; if (getIscBindConfigStatus().Condition == ServerStatusCondition.Normal) { result.UserMessage = "The repair was successful, but the ISC BIND service did not start."; } else { result.UserMessage = "The repair has failed, and the ISC BIND service failed to start."; } } return(result); }
public ServerStatusActionResult StartBindService() { ServiceController sc = getIscBindServiceController(); sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(10)); ServerStatusActionResult r = new ServerStatusActionResult(); if (sc.Status == ServiceControllerStatus.Running) { r.Success = true; r.UserMessage = "ISC BIND service started."; } else { r.Success = false; r.UserMessage = "ISC BIND service failed to start."; } return(r); }
void ServerStatusViewer_AfterOpenAsync(object sender, DataActionAfterEventArgs e) { AsyncStatusRevert(e.StatusGuid); serverDataGridView.Enabled = true; RunLoadAsync(); ServerStatusActionResult result = e.GetData <ServerStatusActionResult>(); MessageBoxIcon icon; if (result.Success) { icon = MessageBoxIcon.Information; } else { icon = MessageBoxIcon.Warning; } MessageBox.Show(this, result.UserMessage, "Action result", MessageBoxButtons.OK, icon); }