protected Cmd _SendAndWaitForResponse(TorControl.Commands type, byte[] cmd) { CheckThread(); Waiter w = new Waiter(); lock (waiters.SyncRoot) { SendCommand(type, cmd); waiters.Enqueue(w); } return (Cmd) w.Response; }
public override void AwakeFromNib() { base.AwakeFromNib(); Window.Title = Constants.Name + " - " + Messages.WindowsSettingsTitle; TableRoutes.Delegate = new TableRoutingDelegate(this); TableAdvancedEvents.Delegate = new TableAdvancedEventsDelegate(this); LblLoggingHelp.StringValue = Messages.WindowsSettingsLoggingHelp; TableRoutingController = new TableRoutingController(this.TableRoutes); TableAdvancedEventsController = new TableAdvancedEventsController(this.TableAdvancedEvents); CmdSave.Activated += (object sender, EventArgs e) => { if (Check()) { SaveOptions(); Close(); } }; CmdCancel.Activated += (object sender, EventArgs e) => { Close(); }; CmdGeneralTos.Activated += (object sender, EventArgs e) => { WindowTosController tos = new WindowTosController(); tos.Window.ReleasedWhenClosed = true; NSApplication.SharedApplication.RunModalForWindow(tos.Window); tos.Window.Close(); }; /* * CboGeneralOsxInterfaceStyle.RemoveAllItems (); * CboGeneralOsxInterfaceStyle.AddItem ("Default"); * CboGeneralOsxInterfaceStyle.AddItem ("Dark"); */ // Modes string sshStatus = (Software.SshVersion != "" ? "" : "Not available"); if (sshStatus != "") { m_modeSshEnabled = false; } // TODO: disable ssh & ssl string sslStatus = (Software.SslVersion != "" ? "" : "Not available"); if (sslStatus != "") { m_modeSslEnabled = false; } CmdModeHelp.Activated += (object sender, EventArgs e) => { Core.UI.Actions.OpenUrlDocsProtocols(); }; ChkModeAutomatic.Activated += (object sender, EventArgs e) => { m_mode_protocol = "AUTO"; m_mode_port = 443; m_mode_alternate = 0; ChangeMode(); }; ChkModeUdp443.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 443; m_mode_alternate = 0; ChangeMode(); }; ChkModeTcp443.Activated += (object sender, EventArgs e) => { m_mode_protocol = "TCP"; m_mode_port = 443; m_mode_alternate = 0; ChangeMode(); }; ChkModeUdp80.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 80; m_mode_alternate = 0; ChangeMode(); }; ChkModeTcp80.Activated += (object sender, EventArgs e) => { m_mode_protocol = "TCP"; m_mode_port = 80; m_mode_alternate = 0; ChangeMode(); }; ChkModeUdp53.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 53; m_mode_alternate = 0; ChangeMode(); }; ChkModeTcp53.Activated += (object sender, EventArgs e) => { m_mode_protocol = "TCP"; m_mode_port = 53; m_mode_alternate = 0; ChangeMode(); }; ChkModeUdp2018.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 2018; m_mode_alternate = 0; ChangeMode(); }; ChkModeTcp2018.Activated += (object sender, EventArgs e) => { m_mode_protocol = "TCP"; m_mode_port = 2018; m_mode_alternate = 0; ChangeMode(); }; ChkModeUdp443Alt.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 443; m_mode_alternate = 1; ChangeMode(); }; ChkModeUdp80Alt.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 80; m_mode_alternate = 1; ChangeMode(); }; ChkModeUdp53Alt.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 53; m_mode_alternate = 1; ChangeMode(); }; ChkModeUdp2018Alt.Activated += (object sender, EventArgs e) => { m_mode_protocol = "UDP"; m_mode_port = 2018; m_mode_alternate = 1; ChangeMode(); }; ChkModeTcp2018Alt.Activated += (object sender, EventArgs e) => { m_mode_protocol = "TCP"; m_mode_port = 2018; m_mode_alternate = 1; ChangeMode(); }; ChkModeSsh22.Activated += (object sender, EventArgs e) => { m_mode_protocol = "SSH"; m_mode_port = 22; m_mode_alternate = 0; ChangeMode(); }; ChkModeSsh22Alt.Activated += (object sender, EventArgs e) => { m_mode_protocol = "SSH"; m_mode_port = 22; m_mode_alternate = 1; ChangeMode(); }; ChkModeSsh80.Activated += (object sender, EventArgs e) => { m_mode_protocol = "SSH"; m_mode_port = 80; m_mode_alternate = 1; ChangeMode(); }; ChkModeSsh53.Activated += (object sender, EventArgs e) => { m_mode_protocol = "SSH"; m_mode_port = 53; m_mode_alternate = 1; ChangeMode(); }; ChkModeSsl443.Activated += (object sender, EventArgs e) => { m_mode_protocol = "SSL"; m_mode_port = 443; m_mode_alternate = 1; ChangeMode(); }; ChkModeTor.Activated += (object sender, EventArgs e) => { m_mode_protocol = "TOR"; m_mode_port = 2018; m_mode_alternate = 0; ChangeMode(); }; CmdModeTorTest.Activated += (object sender, EventArgs e) => { string result = TorControl.Test(TxtModeTorHost.StringValue, Conversions.ToInt32(TxtModeTorControlPort.StringValue), TxtModeTorControlPassword.StringValue); GuiUtils.MessageBox(result); }; // Proxy CboProxyType.Activated += (object sender, EventArgs e) => { EnableIde(); }; CboProxyAuthentication.Activated += (object sender, EventArgs e) => { EnableIde(); }; // Routes CboRoutesOtherwise.RemoveAllItems(); CboRoutesOtherwise.AddItem(RouteDirectionToDescription("in")); CboRoutesOtherwise.AddItem(RouteDirectionToDescription("out")); CboRoutesOtherwise.Activated += (object sender, EventArgs e) => { EnableIde(); }; TableRoutes.DoubleClick += (object sender, EventArgs e) => { RouteEdit(); }; CmdRouteAdd.Activated += (object sender, EventArgs e) => { RouteAdd(); }; CmdRouteRemove.Activated += (object sender, EventArgs e) => { RouteRemove(); }; CmdRouteEdit.Activated += (object sender, EventArgs e) => { RouteEdit(); }; // Advanced CmdLockHelp.Activated += (object sender, EventArgs e) => { Core.UI.Actions.OpenUrlDocsLock(); }; CboLockMode.RemoveAllItems(); CboLockMode.AddItem("None"); CboLockMode.AddItem("Automatic"); foreach (NetworkLockPlugin lockPlugin in Engine.Instance.NetworkLockManager.Modes) { CboLockMode.AddItem(lockPlugin.GetName()); } LblRoutesNetworkLockWarning.StringValue = Messages.WindowsSettingsRouteLockHelp; LblLockRoutingOutWarning.StringValue = Messages.NetworkLockNotAvailableWithRouteOut; CboAdvancedManifestRefresh.RemoveAllItems(); CboAdvancedManifestRefresh.AddItem("Automatic"); CboAdvancedManifestRefresh.AddItem("Never"); CboAdvancedManifestRefresh.AddItem("Every minute"); CboAdvancedManifestRefresh.AddItem("Every ten minute"); CboAdvancedManifestRefresh.AddItem("Every one hour"); CmdAdvancedHelp.Activated += (object sender, EventArgs e) => { Core.UI.Actions.OpenUrlDocsAdvanced(); }; CmdAdvancedOpenVpnPath.Activated += (object sender, EventArgs e) => { GuiUtils.SelectFile(this.Window, TxtAdvancedOpenVpnPath); }; TxtLoggingPath.Changed += (object sender, EventArgs e) => { RefreshLogPreview(); }; TableAdvancedEvents.DoubleClick += (object sender, EventArgs e) => { AdvancedEventEdit(); }; CmdAdvancedEventsEdit.Activated += (object sender, EventArgs e) => { AdvancedEventEdit(); }; CmdAdvancedEventsClear.Activated += (object sender, EventArgs e) => { AdvancedEventClear(); }; ChkAdvancedPingerAlways.Hidden = true; // TOCLEAN ReadOptions(); EnableIde(); RefreshLogPreview(); }
private void cmdModeTorTest_Click(object sender, EventArgs e) { MessageBox.Show(TorControl.Test(txtModeTorHost.Text, Conversions.ToInt32(txtModeTorControlPort.Text), txtModeTorControlPassword.Text)); }
public override void Activation() { base.Activation(); // Block All if (Engine.Instance.Storage.Get("netlock.incoming") == "block") { XmlDocument xmlDocRule = new XmlDocument(); XmlElement xmlRule = xmlDocRule.CreateElement("rule"); xmlRule.SetAttribute("name", "NetLock - In - Block All"); xmlRule.SetAttribute("layer", "all-in"); xmlRule.SetAttribute("action", "block"); AddRule("netlock_in_block_all", xmlRule); } if (Engine.Instance.Storage.Get("netlock.outgoing") == "block") { XmlDocument xmlDocRule = new XmlDocument(); XmlElement xmlRule = xmlDocRule.CreateElement("rule"); xmlRule.SetAttribute("name", "NetLock - Out - Block All"); xmlRule.SetAttribute("layer", "all-out"); xmlRule.SetAttribute("action", "block"); AddRule("netlock_out_block_all", xmlRule); } // Allow Eddie / OpenVPN / Stunnel / Plink AddRule("netlock_allow_eddie", Wfp.CreateItemAllowProgram("NetLock - Allow Eddie", Platform.Instance.GetExecutablePath())); if (Engine.Instance.Storage.GetLower("proxy.mode") == "tor") { string path = TorControl.GetTorExecutablePath(); if (path != "") { AddRule("netlock_allow_tor", Wfp.CreateItemAllowProgram("NetLock - Allow Tor", path)); } } // Allow loopback { XmlDocument xmlDocRule = new XmlDocument(); XmlElement xmlRule = xmlDocRule.CreateElement("rule"); xmlRule.SetAttribute("name", "NetLock - Allow loopback"); xmlRule.SetAttribute("layer", "all"); xmlRule.SetAttribute("action", "permit"); XmlElement XmlIf1 = xmlDocRule.CreateElement("if"); xmlRule.AppendChild(XmlIf1); XmlIf1.SetAttribute("field", "ip_local_interface"); XmlIf1.SetAttribute("match", "equal"); XmlIf1.SetAttribute("interface", "loopback"); AddRule("netlock_allow_loopback", xmlRule); } if (Engine.Instance.Storage.GetBool("netlock.allow_ping") == true) { // Allow ICMP { XmlDocument xmlDocRule = new XmlDocument(); XmlElement xmlRule = xmlDocRule.CreateElement("rule"); xmlRule.SetAttribute("name", "NetLock - Allow ICMP"); xmlRule.SetAttribute("layer", "all"); xmlRule.SetAttribute("action", "permit"); XmlElement XmlIf1 = xmlDocRule.CreateElement("if"); xmlRule.AppendChild(XmlIf1); XmlIf1.SetAttribute("field", "ip_protocol"); XmlIf1.SetAttribute("match", "equal"); XmlIf1.SetAttribute("protocol", "icmp"); AddRule("netlock_allow_icmp", xmlRule); } } if (Engine.Instance.Storage.GetBool("netlock.allow_private") == true) { AddRule("netlock_allow_ipv4_local1", Wfp.CreateItemAllowAddress("NetLock - Private - Allow Local Subnet 1 - IPv4", new IpAddress("192.168.0.0/255.255.0.0"))); AddRule("netlock_allow_ipv4_local2", Wfp.CreateItemAllowAddress("NetLock - Private - Allow Local Subnet 2 - IPv4", new IpAddress("172.16.0.0/255.240.0.0"))); AddRule("netlock_allow_ipv4_local3", Wfp.CreateItemAllowAddress("NetLock - Private - Allow Local Subnet 3 - IPv4", new IpAddress("10.0.0.0/255.0.0.0"))); AddRule("netlock_allow_ipv4_multicast", Wfp.CreateItemAllowAddress("NetLock - Private - Allow Multicast - IPv4", new IpAddress("224.0.0.0/255.255.255.0"))); AddRule("netlock_allow_ipv4_ssdp", Wfp.CreateItemAllowAddress("NetLock - Private - Allow Simple Service Discovery Protocol address", new IpAddress("239.255.255.250/255.255.255.255"))); AddRule("netlock_allow_ipv4_slp", Wfp.CreateItemAllowAddress("NetLock - Private - Allow Service Location Protocol", new IpAddress("239.255.255.253/255.255.255.255"))); } // Without this, Windows stay in 'Identifying network...' and OpenVPN in 'Waiting TUN to come up'. // Note 2018: don't occur in Win10? if (Engine.Instance.Storage.GetBool("netlock.allow_dhcp") == true) { XmlDocument xmlDocRule = new XmlDocument(); XmlElement xmlRule = xmlDocRule.CreateElement("rule"); xmlRule.SetAttribute("name", "NetLock - Allow DHCP"); xmlRule.SetAttribute("layer", "all"); xmlRule.SetAttribute("action", "permit"); XmlElement XmlIf1 = xmlDocRule.CreateElement("if"); xmlRule.AppendChild(XmlIf1); XmlIf1.SetAttribute("field", "ip_protocol"); XmlIf1.SetAttribute("match", "equal"); XmlIf1.SetAttribute("protocol", "udp"); XmlElement XmlIf2 = xmlDocRule.CreateElement("if"); xmlRule.AppendChild(XmlIf2); XmlIf2.SetAttribute("field", "ip_local_port"); XmlIf2.SetAttribute("match", "equal"); XmlIf2.SetAttribute("port", "68"); XmlElement XmlIf3 = xmlDocRule.CreateElement("if"); xmlRule.AppendChild(XmlIf3); XmlIf3.SetAttribute("field", "ip_remote_port"); XmlIf3.SetAttribute("match", "equal"); XmlIf3.SetAttribute("port", "67"); AddRule("netlock_allow_dhcp", xmlRule); } OnUpdateIps(); }
protected void SendCommand(TorControl.Commands type, byte[] cmd) { lock (output) { if (cmd == null || cmd.Length <= 65535) { SendCommand0(type, cmd); return; } int length = cmd.Length; output.WriteShort(65535); output.WriteShort((int)TorControl.Commands.FragmentHeader); output.WriteShort((int)type); output.WriteInt(length); output.Write(cmd, 0, 65535); for (int pos = 65535; pos < length; pos += 65535) { int flen = length-pos < 65535 ? length -pos : 65535; output.WriteShort(flen); output.WriteShort((int)TorControl.Commands.Fragment); output.Write(cmd, pos, flen); } } }
protected void SendCommand0(TorControl.Commands type, byte[] cmd) { int length = cmd == null ? 0 : cmd.Length; output.WriteShort(length); output.WriteShort((int)type); if (cmd != null && cmd.Length > 0) output.Write(cmd); }
protected Cmd SendAndWaitForResponse(TorControl.Commands type, byte[] cmd) { return SendAndWaitForResponse(type, cmd, TorControl.Commands.Done, TorControl.Commands.Done, TorControl.Commands.Done, TorControl.Commands.Done); }
protected Cmd SendAndWaitForResponse(TorControl.Commands type, byte[] cmd, TorControl.Commands exType1, TorControl.Commands exType2, TorControl.Commands exType3) { return SendAndWaitForResponse(type, cmd, exType1, exType2, exType3, exType3); }
public override void Activation() { base.Activation(); try { // Service { ServiceController service = null; try { service = new ServiceController("MpsSvc"); m_serviceStatus = (service.Status == ServiceControllerStatus.Running); if (m_serviceStatus == false) { TimeSpan timeout = TimeSpan.FromMilliseconds(10000); service.Start(); service.WaitForStatus(ServiceControllerStatus.Running, timeout); } } catch (Exception e) { if (e.Message.Contains("MpsSvc")) { throw new Exception(LanguageManager.GetText("NetworkLockWindowsFirewallUnableToStartService")); } else { throw e; } } finally { if (service != null) { service.Dispose(); } } } // If 'winfirewall_rules_original.airvpn' doesn't exists, create it. It's a general backup of the first time. // We create this kind of file in Windows System directory, because it's system critical data, and to allow it to survive between re-installation of the software. string rulesBackupFirstTime = Engine.Instance.GetPathInData("winfirewall_rules_original.wfw"); if (Platform.Instance.FileExists(rulesBackupFirstTime) == false) { NetShAdvFirewall("export \"" + SystemShell.EscapePath(rulesBackupFirstTime) + "\""); } string rulesBackupSession = Engine.Instance.GetPathInData("winfirewall_rules_backup.wfw"); if (Platform.Instance.FileExists(rulesBackupSession)) { Platform.Instance.FileDelete(rulesBackupSession); } NetShAdvFirewall("export \"" + SystemShell.EscapePath(rulesBackupSession) + "\""); if (Platform.Instance.FileExists(rulesBackupSession) == false) { throw new Exception(LanguageManager.GetText("NetworkLockWindowsFirewallBackupFailed")); } foreach (NetworkLockWindowsFirewallProfile profile in Profiles) { profile.Fetch(); } foreach (NetworkLockWindowsFirewallProfile profile in Profiles) { if (profile.State == false) { profile.StateOn(); } /* * if (profile.Notifications == true) * { * profile.NotifyOff(); * } */ } // Disable all notifications NetShAdvFirewall("set allprofiles settings inboundusernotification disable"); NetShAdvFirewall("firewall delete rule name=all"); // Windows Firewall don't work with logical path (a path that contain hardlink) NetShAdvFirewall("firewall add rule name=\"Eddie - Out - Program Eddie\" dir=out action=allow program=\"" + SystemShell.EscapePath(Platform.Instance.FileGetPhysicalPath(Platform.Instance.GetExecutablePath())) + "\" enable=yes"); if (Engine.Instance.Storage.GetLower("proxy.mode") == "tor") { string path = TorControl.GetTorExecutablePath(); if (path != "") { NetShAdvFirewall("firewall add rule name=\"Eddie - Out - Program Tor\" dir=out action=allow program=\"" + SystemShell.EscapePath(Platform.Instance.FileGetPhysicalPath(path)) + "\" enable=yes"); } } // Adding rules are slow, so force at least curl if (Platform.Instance.FetchUrlInternal() == false) { NetShAdvFirewall("firewall add rule name=\"Eddie - Out - Program curl\" dir=out action=allow program=\"" + SystemShell.EscapePath(Platform.Instance.FileGetPhysicalPath(Software.GetTool("curl").Path)) + "\" enable=yes"); } if (Engine.Instance.Storage.GetBool("netlock.allow_ping") == true) { NetShAdvFirewall("firewall add rule name=\"Eddie - In - ICMP IPv4\" dir=in action=allow protocol=icmpv4:8,any"); NetShAdvFirewall("firewall add rule name=\"Eddie - In - ICMP IPv6\" dir=in action=allow protocol=icmpv6:8,any"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - ICMP IPv4\" dir=out action=allow protocol=icmpv4:8,any"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - ICMP IPv6\" dir=out action=allow protocol=icmpv6:8,any"); } // Exec("netsh advfirewall firewall add rule name=\"Eddie - IPv6 Block - Low\" dir=out remoteip=0000::/1 action=allow"); // Exec("netsh advfirewall firewall add rule name=\"Eddie - IPv6 Block - High\" dir=out remoteip=8000::/1 action=allow"); if (Engine.Instance.Storage.GetBool("netlock.allow_private") == true) { NetShAdvFirewall("firewall add rule name=\"Eddie - In - AllowLocal\" dir=in action=allow remoteip=LocalSubnet"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - AllowLocal\" dir=out action=allow remoteip=LocalSubnet"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - AllowMulticast\" dir=out action=allow remoteip=224.0.0.0/24"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - AllowSimpleServiceDiscoveryProtocol\" dir=out action=allow remoteip=239.255.255.250/32"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - ServiceLocationProtocol\" dir=out action=allow remoteip=239.255.255.253/32"); } // This is not optimal, it maybe also allow LAN traffic, but we can't find a better alternative (interfacetype=ras don't work) and WinFirewall method must be deprecated. NetShAdvFirewall("firewall add rule name=\"Eddie - In - AllowVPN\" dir=in action=allow localip=10.0.0.0/8"); NetShAdvFirewall("firewall add rule name=\"Eddie - Out - AllowVPN\" dir=out action=allow localip=10.0.0.0/8"); // Without this, Windows stay in 'Identifying network...' and OpenVPN in 'Waiting TUN to come up'. NetShAdvFirewall("firewall add rule name=\"Eddie - Out - DHCP\" dir=out action=allow protocol=UDP localport=68 remoteport=67 program=\"%SystemRoot%\\system32\\svchost.exe\" service=\"dhcp\""); string cmd = "set allprofiles firewallpolicy "; if (Engine.Instance.Storage.Get("netlock.incoming") == "allow") { cmd += "allowinbound"; } else { cmd += "blockinbound"; } cmd += ","; if (Engine.Instance.Storage.Get("netlock.outgoing") == "allow") { cmd += "allowoutbound"; } else { cmd += "blockoutbound"; } NetShAdvFirewall(cmd); m_activated = true; // To avoid OnUpdateIps before this moment OnUpdateIps(); } catch (Exception ex) { Deactivation(); throw new Exception(ex.Message); } }
protected Cmd SendAndWaitForResponse(TorControl.Commands type, byte[] cmd, TorControl.Commands exType1, TorControl.Commands exType2, TorControl.Commands exType3, TorControl.Commands exType4) { Cmd c = _SendAndWaitForResponse(type, cmd); if (c.Type == TorControl.Commands.Error) throw new TorControlException(Bytes.GetU16(c.Body, 0), Bytes.GetNulTerminatedStr(c.Body,2)); if (c.Type == exType1 || c.Type == exType2 || c.Type == exType3 || c.Type == exType4) return c; throw new TorControlSyntaxException("Unexpected reply type: " + c.Type); }
public override void AwakeFromNib() { base.AwakeFromNib(); Window.Title = Constants.Name + " - " + Messages.WindowsSettingsTitle; TableTabsController = new TableTabsController(TableTabs, TabMain); ChkNetLock.Activated += (object sender, EventArgs e) => { if (GuiUtils.GetCheck(ChkNetLock)) { if ((Engine.Instance as UI.Cocoa.Osx.Engine).MainWindow.NetworkLockKnowledge() == false) { GuiUtils.SetCheck(ChkNetLock, false); } } }; TableRoutes.Delegate = new TableRoutingDelegate(this); LblDnsServers.StringValue = Messages.WindowsSettingsDnsServers; TableDnsServers.Delegate = new TableDnsServersDelegate(this); TableAdvancedEvents.Delegate = new TableAdvancedEventsDelegate(this); LblLoggingHelp.StringValue = Messages.WindowsSettingsLoggingHelp; TableRoutingController = new TableRoutingController(this.TableRoutes); TableDnsServersController = new TableDnsServersController(this.TableDnsServers); TableAdvancedEventsController = new TableAdvancedEventsController(this.TableAdvancedEvents); CmdSave.Activated += (object sender, EventArgs e) => { try { if (Check()) { SaveOptions(); Close(); } } catch (Exception ex) { Core.Engine.Instance.Logs.Log(LogType.Fatal, ex); } }; CmdCancel.Activated += (object sender, EventArgs e) => { Close(); }; // General CmdGeneralTos.Activated += (object sender, EventArgs e) => { WindowTosController tos = new WindowTosController(); tos.Window.ReleasedWhenClosed = true; NSApplication.SharedApplication.RunModalForWindow(tos.Window); tos.Window.Close(); }; CmdResetToDefault.Activated += (object sender, EventArgs e) => { if (Engine.Instance.OnAskYesNo(Messages.ResetSettingsConfirm)) { Engine.Instance.Storage.ResetAll(false); ReadOptions(); GuiUtils.MessageBoxInfo(Messages.ResetSettingsDone); } }; // UI CboUiUnit.RemoveAllItems(); CboUiUnit.AddItem(Messages.WindowsSettingsUiUnit0); CboUiUnit.AddItem(Messages.WindowsSettingsUiUnit1); CboUiUnit.AddItem(Messages.WindowsSettingsUiUnit2); // Protocols CmdProtocolsHelp1.Activated += (object sender, EventArgs e) => { Engine.Instance.Command("ui.show.docs.protocols"); }; CmdProtocolsHelp2.Activated += (object sender, EventArgs e) => { Engine.Instance.Command("ui.show.docs.udp_vs_tcp"); }; ChkProtocolsAutomatic.Activated += (object sender, EventArgs e) => { EnableIde(); }; TableProtocols.Delegate = new TableProtocolsDelegate(this); TableProtocolsController = new TableProtocolsController(this.TableProtocols); // Proxy CboProxyType.RemoveAllItems(); CboProxyType.AddItem("None"); CboProxyType.AddItem("Http"); CboProxyType.AddItem("Socks"); CboProxyType.AddItem("Tor"); CboProxyWhen.RemoveAllItems(); CboProxyWhen.AddItem(Messages.WindowsSettingsProxyWhenAlways); CboProxyWhen.AddItem(Messages.WindowsSettingsProxyWhenWeb); CboProxyWhen.AddItem(Messages.WindowsSettingsProxyWhenOpenVPN); CboProxyWhen.AddItem(Messages.WindowsSettingsProxyWhenNone); CmdProxyTorHelp.Activated += (object sender, EventArgs e) => { Engine.Instance.Command("ui.show.docs.tor"); }; CboProxyType.Activated += (object sender, EventArgs e) => { EnableIde(); if (GuiUtils.GetSelected(CboProxyType) == "Tor") { TxtProxyPort.StringValue = "9150"; } else { TxtProxyPort.StringValue = "8080"; } }; CboProxyAuthentication.Activated += (object sender, EventArgs e) => { EnableIde(); }; CmdProxyTorTest.Activated += (object sender, EventArgs e) => { string result = TorControl.Test(TxtProxyHost.StringValue, Conversions.ToInt32(TxtProxyTorControlPort.StringValue), TxtProxyTorControlPassword.StringValue); GuiUtils.MessageBoxInfo(result); }; // Routes CboRoutesOtherwise.RemoveAllItems(); CboRoutesOtherwise.AddItem(RouteDirectionToDescription("in")); CboRoutesOtherwise.AddItem(RouteDirectionToDescription("out")); CboRoutesOtherwise.Activated += (object sender, EventArgs e) => { EnableIde(); }; TableRoutes.DoubleClick += (object sender, EventArgs e) => { RouteEdit(); }; CmdRouteAdd.Activated += (object sender, EventArgs e) => { RouteAdd(); }; CmdRouteRemove.Activated += (object sender, EventArgs e) => { RouteRemove(); }; CmdRouteEdit.Activated += (object sender, EventArgs e) => { RouteEdit(); }; // Advanced - General CmdAdvancedHelp.Activated += (object sender, EventArgs e) => { Engine.Instance.Command("ui.show.docs.advanced"); }; CboIpV6.RemoveAllItems(); CboIpV6.AddItem("None"); CboIpV6.AddItem("Disable"); CboAdvancedManifestRefresh.RemoveAllItems(); CboAdvancedManifestRefresh.AddItem("Automatic"); CboAdvancedManifestRefresh.AddItem("Never"); CboAdvancedManifestRefresh.AddItem("Every minute"); CboAdvancedManifestRefresh.AddItem("Every ten minute"); CboAdvancedManifestRefresh.AddItem("Every one hour"); LblOpenVpnRcvBuf.StringValue = Messages.WindowsSettingsOpenVpnRcvBuf + ":"; LblOpenVpnSndBuf.StringValue = Messages.WindowsSettingsOpenVpnSndBuf + ":"; CboOpenVpnRcvBuf.RemoveAllItems(); CboOpenVpnRcvBuf.AddItem(Messages.Automatic); CboOpenVpnRcvBuf.AddItem(Messages.WindowsSettingsOpenVpnDefault); CboOpenVpnRcvBuf.AddItem("8 KB"); CboOpenVpnRcvBuf.AddItem("16 KB"); CboOpenVpnRcvBuf.AddItem("32 KB"); CboOpenVpnRcvBuf.AddItem("64 KB"); CboOpenVpnRcvBuf.AddItem("128 KB"); CboOpenVpnRcvBuf.AddItem("256 KB"); CboOpenVpnRcvBuf.AddItem("512 KB"); CboOpenVpnSndBuf.RemoveAllItems(); CboOpenVpnSndBuf.AddItem(Messages.Automatic); CboOpenVpnSndBuf.AddItem(Messages.WindowsSettingsOpenVpnDefault); CboOpenVpnSndBuf.AddItem("8 KB"); CboOpenVpnSndBuf.AddItem("16 KB"); CboOpenVpnSndBuf.AddItem("32 KB"); CboOpenVpnSndBuf.AddItem("64 KB"); CboOpenVpnSndBuf.AddItem("128 KB"); CboOpenVpnSndBuf.AddItem("256 KB"); CboOpenVpnSndBuf.AddItem("512 KB"); CmdAdvancedOpenVpnPath.Activated += (object sender, EventArgs e) => { GuiUtils.SelectFile(this.Window, TxtAdvancedOpenVpnPath); }; // Advanced - DNS TableDnsServers.DoubleClick += (object sender, EventArgs e) => { DnsServersEdit(); }; CmdDnsAdd.Activated += (object sender, EventArgs e) => { DnsServersAdd(); }; CmdDnsRemove.Activated += (object sender, EventArgs e) => { DnsServersRemove(); }; CmdDnsEdit.Activated += (object sender, EventArgs e) => { DnsServersEdit(); }; // Advanced - Net Lock CmdLockHelp.Activated += (object sender, EventArgs e) => { Engine.Instance.Command("ui.show.docs.lock"); }; CboLockMode.RemoveAllItems(); CboLockMode.AddItem("None"); CboLockMode.AddItem("Automatic"); foreach (NetworkLockPlugin lockPlugin in Engine.Instance.NetworkLockManager.Modes) { CboLockMode.AddItem(lockPlugin.GetName()); } LblRoutesNetworkLockWarning.StringValue = Messages.WindowsSettingsRouteLockHelp; LblLockRoutingOutWarning.StringValue = Messages.NetworkLockNotAvailableWithRouteOut; // Advanced - Logging TxtLoggingPath.Changed += (object sender, EventArgs e) => { RefreshLogPreview(); }; CmdLoggingOpen.Activated += (object sender, EventArgs e) => { List <string> paths = Engine.Instance.Logs.ParseLogFilePath(TxtLoggingPath.StringValue); foreach (string path in paths) { if (Core.Platform.Instance.OpenDirectoryInFileManager(path) == false) { GuiUtils.MessageBoxError(MessagesFormatter.Format(Messages.WindowsSettingsLogsCannotOpenDirectory, path)); } } }; // Directives CboOpenVpnDirectivesSkipDefault.RemoveAllItems(); CboOpenVpnDirectivesSkipDefault.AddItem(Messages.WindowsSettingsOpenVpnDirectivesDefaultSkip1); CboOpenVpnDirectivesSkipDefault.AddItem(Messages.WindowsSettingsOpenVpnDirectivesDefaultSkip2); CmdOpenVpnDirectivesHelp.Activated += (object sender, EventArgs e) => { Engine.Instance.Command("ui.show.docs.directives"); }; CmdOpenVpnDirectivesCustomPathBrowse.Activated += (object sender, EventArgs e) => { GuiUtils.SelectFile(this.Window, TxtOpenVpnDirectivesCustomPath); }; // Advanced - Events TableAdvancedEvents.DoubleClick += (object sender, EventArgs e) => { AdvancedEventEdit(); }; CmdAdvancedEventsEdit.Activated += (object sender, EventArgs e) => { AdvancedEventEdit(); }; CmdAdvancedEventsClear.Activated += (object sender, EventArgs e) => { AdvancedEventClear(); }; ReadOptions(); EnableIde(); RefreshLogPreview(); }
public Cmd(TorControl.Commands t, int l) { type = t; body = new byte[l]; }
public Cmd(TorControl.Commands t, byte[] b) { type = t; body = b; }
public static Json Command(Json data) { string cmd = data["command"].Value as string; if (cmd == "ui.manifest") { Manifest = data; } else if (cmd == "ui.stats.pathprofile") { Platform.Instance.OpenDirectoryInFileManager(Engine.Instance.Stats.Get("PathProfile").Value); } else if (cmd == "ui.stats.pathdata") { Platform.Instance.OpenDirectoryInFileManager(Engine.Instance.Stats.Get("PathData").Value); } else if (cmd == "ui.stats.pathapp") { Platform.Instance.OpenDirectoryInFileManager(Engine.Instance.Stats.Get("PathApp").Value); } else if (cmd == "man") { string format = "text"; if (data.HasKey("format")) { format = data["format"].Value as string; } string body = Engine.Instance.Storage.GetMan(format); Engine.Instance.OnShowText("man", body); } else if (cmd == "ui.show.manifest") { Engine.Instance.OnShowText("ui.show.manifest", Manifest.ToJsonPretty()); } else if (cmd == "ui.show.os.info") { Engine.Instance.OnShowText("ui.show.os.info", Engine.Instance.GenerateOsInfo().ToJsonPretty()); } else if (cmd == "tor.guard") { Engine.Instance.Logs.LogVerbose("Tor Guard IPs:" + TorControl.GetGuardIps(true).ToString()); } else if (cmd == "tor.NEWNYM") { TorControl.SendNEWNYM(); } else if (cmd == "ip.exit") { Engine.Instance.Logs.LogVerbose(Engine.Instance.DiscoverExit().ToString()); } else if (cmd == "test.cli-su") { Engine.Instance.Logs.LogVerbose(TestRunCliAsRoot()); } else if (cmd == "test.log.info") { Engine.Instance.Logs.Log(LogType.InfoImportant, "Test log\nInfo"); } else if (cmd == "test.log.infoimportant") { Engine.Instance.Logs.Log(LogType.InfoImportant, "Test log\nInfo Important"); } else if (cmd == "test.log.warning") { Engine.Instance.Logs.Log(LogType.Warning, "Test log\nWarning"); } else if (cmd == "test.log.error") { Engine.Instance.Logs.Log(LogType.Error, "Test log\nError"); } else if (cmd == "test.log.fatal") { Engine.Instance.Logs.Log(LogType.Fatal, "Test log\nFatal"); } return(null); }
private void cmdProxyTorTest_Click(object sender, EventArgs e) { string t = TorControl.Test(txtProxyHost.Text, Conversions.ToInt32(txtProxyTorControlPort.Text), txtProxyTorControlPassword.Text); Engine.Instance.OnMessageInfo(t); }