private void Troubleshooter() { //causes a reset of detected ip addresses MainForm.AddressIPv4 = MainForm.Conf.IPv4Address; MainForm.AddressIPv6 = MainForm.Conf.IPv6Address; UISync.Execute(() => rtbOutput.Clear()); try { MainForm.StopAndStartServer(); } catch (Exception ex) { Logger.LogExceptionToFile(ex); } bool portMapOk = false; bool bIPv6 = MainForm.Conf.IPMode == "IPv6"; UISync.Execute(() => button2.Enabled = false); string localserver = (MainForm.Conf.SSLEnabled?"https":"http") + "://" + MainForm.IPAddress + ":" + MainForm.Conf.LANPort; UISync.Execute(() => rtbOutput.Text = $"Local iSpy Server: {localserver}{NL}"); if (webports.IndexOf("," + MainForm.Conf.LANPort + ",", StringComparison.Ordinal) == -1) { UISync.Execute(() => rtbOutput.Text += $"Warning: Running a local server on a non-standard port ({MainForm.Conf.LANPort}) may cause web-browser security errors. Click the link above to test in your web browser.{NL}"); } if (MainForm.IPAddress.StartsWith("169.254")) { UISync.Execute(() => rtbOutput.Text += NL + "Warning: Your network adaptor has assigned itself a link-local address (169.254.x.x). This means your PC is setup for DHCP but can't find a DHCP server and iSpy will be unavailable over your LAN. Try resetting your router." + NL); } if (MainForm.Conf.SSLEnabled) { UISync.Execute(() => rtbOutput.Text += "Warning: Using SSL - disable SSL in settings if you are having problems with connecting." + NL); } if (MainForm.Conf.SpecificIP) { UISync.Execute( () => rtbOutput.Text += "Warning: You are binding to a specific IP address. This can cause issues on systems with multiple NICs. Try unchecking the Bind To IP Address option in settings/ web server if you have problems." + NL); } UISync.Execute(() => rtbOutput.Text += "Checking local server... "); Application.DoEvents(); string res = ""; if (!loadurl(localserver + "/ping", out res)) { string res1 = res; UISync.Execute(() => rtbOutput.Text += $"Failed: {res1}{NL}"); if (MainForm.MWS.Running) { UISync.Execute(() => rtbOutput.Text += "Server reports it IS running" + NL); } else { UISync.Execute(() => rtbOutput.Text += "Server reports it IS NOT running - check the log file for errors (View-> Log File)" + NL); } UISync.Execute(() => rtbOutput.Text += "Do you have a third party firewall or antivirus running (AVG/ zonealarm etc)?" + NL); } else { res = res.ToLower(); if (res.IndexOf("ispy", StringComparison.Ordinal) != -1) { UISync.Execute(() => rtbOutput.Text += "OK"); } else { string res1 = res; UISync.Execute(() => rtbOutput.Text += $"Unexpected output: {res1}"); } } UISync.Execute(() => rtbOutput.Text += NL); UISync.Execute(() => rtbOutput.Text += "Checking WebServer... "); Application.DoEvents(); if (!loadurl(MainForm.Webserver + "/webservices/ispyapi.asmx", out res)) { UISync.Execute(() => rtbOutput.Text += "Webservices not responding."); } else { if (res.IndexOf("error occurred while", StringComparison.Ordinal) != -1) { UISync.Execute(() => rtbOutput.Text += "Error with webservices. Please try again later (check your internet connection)."); } else { UISync.Execute(() => rtbOutput.Text += "OK"); } } UISync.Execute(() => rtbOutput.Text += NL); UISync.Execute(() => rtbOutput.Text += "Checking your firewall... "); Application.DoEvents(); var fw = new FireWall(); fw.Initialize(); bool bOn; var r = fw.IsWindowsFirewallOn(out bOn); if (r == FireWall.FwErrorCode.FwNoerror) { if (bOn) { string strApplication = Application.StartupPath + "\\iSpy.exe"; bool bEnabled = false; fw.IsAppEnabled(strApplication, ref bEnabled); if (!bEnabled) { UISync.Execute(() => rtbOutput.Text += "iSpy is *NOT ENABLED* - add ispy.exe to the windows firewall allowed list"); } else { UISync.Execute(() => rtbOutput.Text += "iSpy is enabled"); } } else { UISync.Execute(() => rtbOutput.Text += "Firewall is off"); } } else { UISync.Execute(() => rtbOutput.Text += "Firewall error: " + r); } UISync.Execute(() => rtbOutput.Text += NL); UISync.Execute(() => rtbOutput.Text += "Checking your account... "); var result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, false); if (result[0] != "OK") { UISync.Execute(() => rtbOutput.Text += result[0]); } else { string[] result1 = result; UISync.Execute(() => rtbOutput.Text += "Found: " + result1[2]); if (Convert.ToBoolean(result[1])) { UISync.Execute(() => rtbOutput.Text += NL + "Your subscription is valid." + NL); if (MainForm.Conf.IPMode == "IPv4") { UISync.Execute(() => rtbOutput.Text += "IPv4: Checking port mappings... " + NL); try { if (NATControl.Mappings == null) { UISync.Execute( () => rtbOutput.Text += "IPv4 Port mappings are unavailable - set up port mapping manually, instructions here: http://portforward.com/english/routers/port_forwarding/routerindex.htm" + NL); } else { int j = 2; while (!portMapOk && j > 0) { int maps = 0; try { var enumerator = NATControl.Mappings.GetEnumerator(); while (enumerator.MoveNext()) { var map = (NATUPNPLib.IStaticPortMapping)enumerator.Current; UISync.Execute( () => rtbOutput.Text += map.ExternalPort + " -> " + map.InternalPort + " on " + map.InternalClient + " (" + map.Protocol + ")" + NL); if (map.ExternalPort == MainForm.Conf.ServerPort) { if (map.InternalPort != MainForm.Conf.LANPort) { UISync.Execute( () => rtbOutput.Text += "*** External port is routing to " + map.InternalPort + " instead of " + MainForm.Conf.LANPort + NL); } else { if (map.InternalClient != MainForm.AddressIPv4) { UISync.Execute( () => rtbOutput.Text += "*** Port is mapping to IP Address " + map.InternalClient + " - should be " + MainForm.AddressIPv4 + ". Set a static IP address for your computer and then update the port mapping." + NL); } else { portMapOk = true; } } } maps++; } } catch (Exception ex) { UISync.Execute( () => rtbOutput.Text += "Port mapping lookup failed (" + ex.Message.Trim() + "). If the connection fails try resetting your router or manually configure port forwarding. " + NL); if (maps == 0) { throw; } } if (!portMapOk) { //add port mapping UISync.Execute(() => rtbOutput.Text += "IPv4: Fixing port mapping... " + NL); if (!NATControl.SetPorts(MainForm.Conf.ServerPort, MainForm.Conf.LANPort)) { UISync.Execute( () => rtbOutput.Text += LocRm.GetString("ErrorPortMapping") + NL); } j--; if (j > 0) { UISync.Execute( () => rtbOutput.Text += "IPv4: Checking port mappings... " + NL); } } } } } catch (Exception ex) { Logger.LogExceptionToFile(ex); } } UISync.Execute(() => rtbOutput.Text += "Checking external access... " + NL); result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, true); if (result.Length > 3 && result[3] != "") { MainForm.Conf.Loopback = MainForm.LoopBack = false; UISync.Execute(() => rtbOutput.Text += "iSpyConnect is trying to contact your server at: " + result[6] + NL); UISync.Execute(() => rtbOutput.Text += "Failed: " + result[3] + NL); if (!bIPv6) { UISync.Execute( () => rtbOutput.Text += "Your router should be configured to forward TCP traffic from WAN (external) port " + MainForm.Conf.ServerPort + " to internal (LAN) port " + MainForm.Conf.LANPort + " on IP address " + MainForm.AddressIPv4 + NL); if (portMapOk) { UISync.Execute( () => rtbOutput.Text += NL + "Your port mapping seems to be OK - try turning your router off and on again. Failing that we recommend checking with your ISP to see if they are blocking port " + MainForm.Conf.ServerPort + " or check if your antivirus protection (eset, zonealarm etc) is blocking iSpy. "); } } if (MainForm.AddressListIPv4.Length > 1) { UISync.Execute(() => rtbOutput.Text += NL + "Warning: There are multiple network adaptors in your PC. Try selecting a different IP address to listen on in iSpy web settings or disable unused network adaptors and restart iSpy: " + NL); foreach (var ip in MainForm.AddressListIPv4) { string ip1 = ip.ToString(); if (ip1 != MainForm.IPAddress) { UISync.Execute(() => rtbOutput.Text += "\t" + ip1 + NL); } } } UISync.Execute(() => rtbOutput.Text += NL + NL + "Please see the troubleshooting section here: http://www.ispyconnect.com/userguide-remote-access-troubleshooting.aspx"); } else { if (result.Length == 1) { UISync.Execute(() => rtbOutput.Text += "Failed: Communication with webserver failed." + NL + NL); } else { UISync.Execute(() => rtbOutput.Text += "Success!" + NL + NL + "If you cannot access content locally please ensure 'Use LAN IP when available' is checked on " + MainForm.Webserver + "/account.aspx and also ensure you're using an up to date web browser (we recommend google Chrome)"); MainForm.Conf.Loopback = MainForm.LoopBack = true; } } } else { UISync.Execute(() => rtbOutput.Text += NL + "Not subscribed - local access only. http://www.ispyconnect.com/subscribe.aspx"); } } UISync.Execute(() => rtbOutput.Text += NL); Application.DoEvents(); UISync.Execute(() => button2.Enabled = true); }
private void Troubleshooter() { //causes a reset of detected ip addresses MainForm.AddressIPv4 = MainForm.Conf.IPv4Address; MainForm.AddressIPv6 = MainForm.Conf.IPv6Address; UISync.Execute(() => rtbOutput.Clear()); try { MainForm.StopAndStartServer(); } catch (Exception ex) { Logger.LogExceptionToFile(ex); } bool portMapOk = false; bool bIPv6 = MainForm.Conf.IPMode == "IPv6"; UISync.Execute(() => button2.Enabled = false); string localserver = (MainForm.Conf.SSLEnabled?"https":"http")+"://" + MainForm.IPAddress + ":" + MainForm.Conf.LANPort; UISync.Execute(() => rtbOutput.Text = $"Local iSpy Server: {localserver}{NL}"); if (webports.IndexOf(","+MainForm.Conf.LANPort+",", StringComparison.Ordinal)==-1) { UISync.Execute(() => rtbOutput.Text += $"Warning: Running a local server on a non-standard port ({MainForm.Conf.LANPort}) may cause web-browser security errors. Click the link above to test in your web browser.{NL}"); } if (MainForm.IPAddress.StartsWith("169.254")) { UISync.Execute(() => rtbOutput.Text += NL+"Warning: Your network adaptor has assigned itself a link-local address (169.254.x.x). This means your PC is setup for DHCP but can't find a DHCP server and iSpy will be unavailable over your LAN. Try resetting your router."+NL); } if (MainForm.Conf.SSLEnabled) UISync.Execute(() => rtbOutput.Text += "Warning: Using SSL - disable SSL in settings if you are having problems with connecting."+NL); if (MainForm.Conf.SpecificIP) UISync.Execute( () => rtbOutput.Text += "Warning: You are binding to a specific IP address. This can cause issues on systems with multiple NICs. Try unchecking the Bind To IP Address option in settings/ web server if you have problems." + NL); UISync.Execute(() => rtbOutput.Text += "Checking local server... "); Application.DoEvents(); string res = ""; if (!loadurl(localserver+"/ping", out res)) { string res1 = res; UISync.Execute(() => rtbOutput.Text += $"Failed: {res1}{NL}"); if (MainForm.MWS.Running) { UISync.Execute(() => rtbOutput.Text += "Server reports it IS running" + NL); } else UISync.Execute(() => rtbOutput.Text += "Server reports it IS NOT running - check the log file for errors (View-> Log File)" + NL); UISync.Execute(() => rtbOutput.Text += "Do you have a third party firewall or antivirus running (AVG/ zonealarm etc)?" + NL); } else { res = res.ToLower(); if (res.IndexOf("ok", StringComparison.Ordinal)!=-1) { UISync.Execute(() => rtbOutput.Text += "OK"); } else { string res1 = res; UISync.Execute(() => rtbOutput.Text += $"Unexpected output: {res1}"); } } UISync.Execute(() => rtbOutput.Text += NL); UISync.Execute(() => rtbOutput.Text += "Checking WebServer... "); Application.DoEvents(); if (!loadurl(MainForm.Webserver + "/webservices/ispyapi.asmx", out res)) { UISync.Execute(() => rtbOutput.Text += "Webservices not responding."); } else { if (res.IndexOf("error occurred while", StringComparison.Ordinal)!=-1) UISync.Execute(() => rtbOutput.Text += "Error with webservices. Please try again later (check your internet connection)."); else UISync.Execute(() => rtbOutput.Text += "OK"); } UISync.Execute(() => rtbOutput.Text += NL); UISync.Execute(() => rtbOutput.Text += "Checking your firewall... "); Application.DoEvents(); var fw = new FireWall(); fw.Initialize(); bool bOn; var r = fw.IsWindowsFirewallOn(out bOn); if (r == FireWall.FwErrorCode.FwNoerror) { if (bOn) { string strApplication = Application.StartupPath + "\\iSpy.exe"; bool bEnabled = false; fw.IsAppEnabled(strApplication, ref bEnabled); if (!bEnabled) { UISync.Execute(() => rtbOutput.Text += "iSpy is *NOT ENABLED* - add ispy.exe to the windows firewall allowed list");} else { UISync.Execute(() => rtbOutput.Text += "iSpy is enabled"); } } else { UISync.Execute(() => rtbOutput.Text += "Firewall is off"); } } else { UISync.Execute(() => rtbOutput.Text += "Firewall error: " + r); } UISync.Execute(() => rtbOutput.Text += NL); UISync.Execute(() => rtbOutput.Text += "Checking your account... "); var result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, false); if (result[0] != "OK") { UISync.Execute(() => rtbOutput.Text += result[0]); } else { string[] result1 = result; UISync.Execute(() => rtbOutput.Text += "Found: " + result1[2]); if (Convert.ToBoolean(result[1])) { UISync.Execute(() => rtbOutput.Text += NL + "Your subscription is valid." + NL); if (MainForm.Conf.IPMode == "IPv4") { UISync.Execute(() => rtbOutput.Text += "IPv4: Checking port mappings... " + NL); try { if (NATControl.Mappings == null) { UISync.Execute( () => rtbOutput.Text += "IPv4 Port mappings are unavailable - set up port mapping manually, instructions here: http://portforward.com/english/routers/port_forwarding/routerindex.htm" + NL); } else { int j = 2; while (!portMapOk && j > 0) { int maps = 0; try { var enumerator = NATControl.Mappings.GetEnumerator(); while (enumerator.MoveNext()) { var map = (NATUPNPLib.IStaticPortMapping)enumerator.Current; UISync.Execute( () => rtbOutput.Text += map.ExternalPort + " -> " + map.InternalPort + " on " + map.InternalClient + " (" + map.Protocol + ")" + NL); if (map.ExternalPort == MainForm.Conf.ServerPort) { if (map.InternalPort != MainForm.Conf.LANPort) { UISync.Execute( () => rtbOutput.Text += "*** External port is routing to " + map.InternalPort + " instead of " + MainForm.Conf.LANPort + NL); } else { if (map.InternalClient != MainForm.AddressIPv4) { UISync.Execute( () => rtbOutput.Text += "*** Port is mapping to IP Address " + map.InternalClient + " - should be " + MainForm.AddressIPv4 + ". Set a static IP address for your computer and then update the port mapping." + NL); } else { portMapOk = true; } } } maps++; } } catch (Exception ex) { UISync.Execute( () => rtbOutput.Text += "Port mapping lookup failed ("+ex.Message.Trim()+"). If the connection fails try resetting your router or manually configure port forwarding. " + NL); if (maps==0) throw; } if (!portMapOk) { //add port mapping UISync.Execute(() => rtbOutput.Text += "IPv4: Fixing port mapping... " + NL); if (!NATControl.SetPorts(MainForm.Conf.ServerPort, MainForm.Conf.LANPort)) { UISync.Execute( () => rtbOutput.Text += LocRm.GetString("ErrorPortMapping") + NL); } j--; if (j > 0) UISync.Execute( () => rtbOutput.Text += "IPv4: Checking port mappings... " + NL); } } } } catch (Exception ex) { Logger.LogExceptionToFile(ex); } } UISync.Execute(() => rtbOutput.Text += "Checking external access... "+NL); result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, true); if (result.Length>3 && result[3] != "") { MainForm.Conf.Loopback = MainForm.LoopBack = false; UISync.Execute(() => rtbOutput.Text += "iSpyConnect is trying to contact your server at: "+result[6] + NL); UISync.Execute(() => rtbOutput.Text += "Failed: " + result[3] + NL); if (!bIPv6) { UISync.Execute( () => rtbOutput.Text += "Your router should be configured to forward TCP traffic from WAN (external) port " + MainForm.Conf.ServerPort + " to internal (LAN) port " + MainForm.Conf.LANPort + " on IP address " + MainForm.AddressIPv4 + NL); if (portMapOk) { UISync.Execute( () => rtbOutput.Text += NL + "Your port mapping seems to be OK - try turning your router off and on again. Failing that we recommend checking with your ISP to see if they are blocking port " + MainForm.Conf.ServerPort + " or check if your antivirus protection (eset, zonealarm etc) is blocking iSpy. "); } } if (MainForm.AddressListIPv4.Length > 1) { UISync.Execute(() => rtbOutput.Text += NL+"Warning: There are multiple network adaptors in your PC. Try selecting a different IP address to listen on in iSpy web settings or disable unused network adaptors and restart iSpy: " + NL); foreach (var ip in MainForm.AddressListIPv4) { string ip1 = ip.ToString(); if (ip1 != MainForm.IPAddress) UISync.Execute(() => rtbOutput.Text += "\t" + ip1 + NL); } } UISync.Execute(() => rtbOutput.Text += NL + NL + "Please see the troubleshooting section here: http://www.ispyconnect.com/userguide-remote-access-troubleshooting.aspx"); } else { if (result.Length == 1) { UISync.Execute(() => rtbOutput.Text += "Failed: Communication with webserver failed." + NL + NL); } else { UISync.Execute(() => rtbOutput.Text += "Success!" + NL + NL + "If you cannot access content locally please ensure 'Use LAN IP when available' is checked on " + MainForm.Webserver + "/account.aspx and also ensure you're using an up to date web browser (we recommend google Chrome)"); MainForm.Conf.Loopback = MainForm.LoopBack = true; } } } else { UISync.Execute(() => rtbOutput.Text += NL + "Not subscribed - local access only. http://www.ispyconnect.com/subscribe.aspx"); } } UISync.Execute(() => rtbOutput.Text+=NL); Application.DoEvents(); UISync.Execute(() => button2.Enabled = true); }
private void Button1Click(object sender, EventArgs e) { bool bIPv6 = tcIPMode.SelectedIndex == 1; int port, localPort; string error; if (!SetupNetwork(out port, out localPort, out error)) { MessageBox.Show(error + Environment.NewLine + LocRm.GetString("TryDifferentPort")); return; } if (!String.IsNullOrWhiteSpace(txtUsername.Text.Trim())) { try { var fw = new FireWall(); var r = fw.Initialize(); if (r == FireWall.FwErrorCode.FwNoerror) { bool bOn; r = fw.IsWindowsFirewallOn(out bOn); if (r == FireWall.FwErrorCode.FwNoerror) { if (bOn) { string strApplication = Application.StartupPath + "\\iSpy.exe"; bool bEnabled = false; r = fw.IsAppEnabled(strApplication, ref bEnabled); if (r == FireWall.FwErrorCode.FwNoerror) { if (!bEnabled) { fw.AddApplication(strApplication, "iSpy"); } } } } } if (r != FireWall.FwErrorCode.FwNoerror) { throw new Exception(r.ToString()); } } catch (Exception ex) { Logger.LogExceptionToFile(ex); MessageBox.Show(this, LocRm.GetString("ErrorFromFirewall") + Environment.NewLine + ex.Message + Environment.NewLine + LocRm.GetString("AddFirewallExceptionManually")); } Next.Enabled = false; Next.Text = "..."; Application.DoEvents(); MainForm.Conf.DHCPReroute = chkReroute.Checked; MainForm.Conf.SpecificIP = chkBindSpecific.Checked; bool failed = false; var result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, true); if (result[0] != "OK") { MessageBox.Show(result[0], LocRm.GetString("Error")); failed = true; } if (!failed) { if (result.Length > 0 && result[0] == "OK") { EmailAddress = result[2]; MobileNumber = result[4]; MainForm.Conf.Reseller = result[5]; MainForm.Conf.ServicesEnabled = true; MainForm.Conf.Subscribed = Convert.ToBoolean(result[1]); if (result[3] != "") { if (!bIPv6) { //try setting port automatically if (chkuPNP.Checked) { if (!NATControl.SetPorts(port, localPort)) { MessageBox.Show(LocRm.GetString("ErrorPortMapping"), LocRm.GetString("Error")); chkuPNP.Checked = false; } else { result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, true); } } } if (result[3] != "") { MainForm.Conf.Loopback = false; Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); MainForm.LoopBack = false; if (!bIPv6) { switch ( MessageBox.Show( LocRm.GetString("ErrorLoopback").Replace("[PORT]", port.ToString(CultureInfo.InvariantCulture)), LocRm.GetString("Error"), MessageBoxButtons.YesNoCancel)) { case DialogResult.Yes: ShowTroubleShooter(); return; case DialogResult.No: MainForm.Conf.Loopback = false; MainForm.LoopBack = false; DialogResult = DialogResult.Yes; Close(); return; case DialogResult.Cancel: return; } } else { switch ( MessageBox.Show( LocRm.GetString("ErrorLoopbackIPv6").Replace("[PORT]", localPort.ToString(CultureInfo.InvariantCulture)), LocRm.GetString("Error"), MessageBoxButtons.YesNoCancel)) { case DialogResult.Yes: ShowTroubleShooter(); return; case DialogResult.No: MainForm.Conf.Loopback = false; MainForm.LoopBack = false; DialogResult = DialogResult.Yes; Close(); return; case DialogResult.Cancel: return; } } } } if (result[3] == "") { MainForm.Conf.Loopback = true; MainForm.LoopBack = true; DialogResult = DialogResult.Yes; Close(); return; } Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); } else { if (result.Length > 0 && result[0].ToLower().IndexOf("login", StringComparison.Ordinal) == -1) { MessageBox.Show(result[0], LocRm.GetString("Error")); } else { MessageBox.Show(LocRm.GetString("NoResponse"), LocRm.GetString("ConnectFailed")); } } } } else { Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); if ( MessageBox.Show(LocRm.GetString("WarningLogin"), LocRm.GetString("Note"), MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } MainForm.Conf.ServicesEnabled = false; MainForm.Conf.Subscribed = false; MainForm.Conf.WSUsername = ""; MainForm.Conf.WSPassword = ""; DialogResult = DialogResult.OK; Close(); } Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); }
private void Button1Click(object sender, EventArgs e) { bool bIPv6 = tcIPMode.SelectedIndex == 1; int port, localPort; string error; if (!SetupNetwork(out port, out localPort, out error)) { MessageBox.Show(error+Environment.NewLine+LocRm.GetString("TryDifferentPort")); return; } if (!String.IsNullOrWhiteSpace(txtUsername.Text.Trim())) { try { var fw = new FireWall(); var r = fw.Initialize(); if (r == FireWall.FwErrorCode.FwNoerror) { bool bOn; r = fw.IsWindowsFirewallOn(out bOn); if (r == FireWall.FwErrorCode.FwNoerror) { if (bOn) { string strApplication = Application.StartupPath + "\\iSpy.exe"; bool bEnabled = false; r = fw.IsAppEnabled(strApplication, ref bEnabled); if (r == FireWall.FwErrorCode.FwNoerror) { if (!bEnabled) { fw.AddApplication(strApplication, "iSpy"); } } } } } if (r!= FireWall.FwErrorCode.FwNoerror) { throw new Exception(r.ToString()); } } catch (Exception ex) { MainForm.LogExceptionToFile(ex); MessageBox.Show(this, LocRm.GetString("ErrorFromFirewall") +Environment.NewLine+ ex.Message +Environment.NewLine+ LocRm.GetString("AddFirewallExceptionManually")); } Next.Enabled = false; Next.Text = "..."; Application.DoEvents(); MainForm.Conf.DHCPReroute = chkReroute.Checked; MainForm.Conf.SpecificIP = chkBindSpecific.Checked; bool failed = false; var result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, true); if (result[0] != "OK") { MessageBox.Show(result[0], LocRm.GetString("Error")); failed = true; } if (!failed) { if (result.Length>0 && result[0] == "OK") { EmailAddress = result[2]; MobileNumber = result[4]; MainForm.Conf.Reseller = result[5]; MainForm.Conf.ServicesEnabled = true; MainForm.Conf.Subscribed = Convert.ToBoolean(result[1]); if (result[3] != "") { if (!bIPv6) { //try setting port automatically if (chkuPNP.Checked) { if (!NATControl.SetPorts(port, localPort)) { MessageBox.Show(LocRm.GetString("ErrorPortMapping"), LocRm.GetString("Error")); chkuPNP.Checked = false; } else { result = WsWrapper.TestConnection(MainForm.Conf.WSUsername, MainForm.Conf.WSPassword, true); } } } if (result[3] != "") { MainForm.Conf.Loopback = false; Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); MainForm.LoopBack = false; if (!bIPv6) { switch ( MessageBox.Show( LocRm.GetString("ErrorLoopback").Replace("[PORT]", port.ToString(CultureInfo.InvariantCulture)), LocRm.GetString("Error"), MessageBoxButtons.YesNoCancel)) { case DialogResult.Yes: ShowTroubleShooter(); return; case DialogResult.No: MainForm.Conf.Loopback = false; MainForm.LoopBack = false; DialogResult = DialogResult.Yes; Close(); return; case DialogResult.Cancel: return; } } else { switch ( MessageBox.Show( LocRm.GetString("ErrorLoopbackIPv6").Replace("[PORT]", localPort.ToString(CultureInfo.InvariantCulture)), LocRm.GetString("Error"), MessageBoxButtons.YesNoCancel)) { case DialogResult.Yes: ShowTroubleShooter(); return; case DialogResult.No: MainForm.Conf.Loopback = false; MainForm.LoopBack = false; DialogResult = DialogResult.Yes; Close(); return; case DialogResult.Cancel: return; } } } } if (result[3] == "") { MainForm.Conf.Loopback = true; MainForm.LoopBack = true; DialogResult = DialogResult.Yes; Close(); return; } Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); } else { if (result.Length>0 && result[0].ToLower().IndexOf("login", StringComparison.Ordinal) == -1) { MessageBox.Show(result[0], LocRm.GetString("Error")); } else { MessageBox.Show(LocRm.GetString("NoResponse"), LocRm.GetString("ConnectFailed")); } } } } else { Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); if ( MessageBox.Show(LocRm.GetString("WarningLogin"), LocRm.GetString("Note"), MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } MainForm.Conf.ServicesEnabled = false; MainForm.Conf.Subscribed = false; MainForm.Conf.WSUsername = ""; MainForm.Conf.WSPassword = ""; DialogResult = DialogResult.OK; Close(); } Next.Enabled = true; Next.Text = LocRm.GetString("Finish"); }