/// <summary> /// Used to parse configuration part of bootconfig file /// </summary> /// <param name="lines">file content as lines as string</param> /// <param name="i">current line position</param> /// <returns>configuration as Data.Configuration</returns> private Data.Configuration GetConfiguration(string[] lines, ref int i) { try { Data.Configuration config; string line = lines[i]; switch (line[29]) { case 'E': config = new Data.Configuration("Ethernet"); break; case 'W': config = new Data.Configuration("Wi-Fi"); break; default: return(null); } line = lines[i += 1]; config.DHCP1 = line[42] == 'Y' ? true : false; line = lines[i += 1]; config.IPAddress = line.Substring(42, line.Length - 43); line = lines[i += 1]; config.Subnet = line.Substring(62, line.Length - 64); line = lines[i += 1]; config.Gateway = line.Substring(42, line.Length - 43); line = lines[i += 3]; config.DHCP2 = line[4] == 'D' ? true : false; config.DNS1 = line.Substring(42, line.Length - 43); line = lines[i += 1]; if (line[4] == ' ') { config.DNS2 = line.Substring(42, line.Length - 43); } else { config.DNS2 = string.Empty; } return(config); } catch (Exception ex) { NotifyUser($"Parsing error: {ex.Message}", NotifyType.ErrorMessage); } return(null); }
/// <summary> /// Used to perform base ipaddress validity checks /// </summary> /// <param name="config">interface configuration</param> /// <returns>true if ok otherwise false</returns> private bool CheckDHCPConfiguration(Data.Configuration config) { IPAddress address; if (config.DNS1 != string.Empty && !IPAddress.TryParse(config.DNS1, out address)) { NotifyUser($"IPAddress {config.DNS1} from {config.Interface} not valid", NotifyType.ErrorMessage); return(false); } if (config.DNS2 != string.Empty && !IPAddress.TryParse(config.DNS2, out address)) { NotifyUser($"IPAddress {config.DNS2} from {config.Interface} not valid", NotifyType.ErrorMessage); return(false); } return(true); }
/// <summary> /// Used to perform base ipaddress validity checks /// </summary> /// <param name="config">interface configuration</param> /// <returns>true if ok otherwise false</returns> private bool CheckIPConfiguration(Data.Configuration config) { IPAddress address; if (config.IPAddress == string.Empty || !IPAddress.TryParse(config.IPAddress, out address)) { NotifyUser($"IPAddress {config.IPAddress} from {config.Interface} not valid", NotifyType.ErrorMessage); return(false); } if (config.IPAddress == string.Empty || !IPAddress.TryParse(config.Subnet, out address)) { NotifyUser($"Subnet {config.Subnet} from {config.Interface} not valid", NotifyType.ErrorMessage); return(false); } if (config.Gateway != string.Empty && !IPAddress.TryParse(config.Gateway, out address)) { NotifyUser($"IPAddress {config.Gateway} from {config.Interface} not valid", NotifyType.ErrorMessage); return(false); } return(true); }