public void Start(Configuration configuration) { Server server = configuration.GetCurrentServer(); if (_process == null) { Kill(); string polipoConfig = Resources.privoxy_conf; _runningPort = this.GetFreePort(); polipoConfig = polipoConfig.Replace("__SOCKS_PORT__", configuration.localPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_PORT__", _runningPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_IP__", configuration.shareOverLan ? "0.0.0.0" : "127.0.0.1"); FileManager.ByteArrayToFile(runningPath + "/privoxy.conf", System.Text.Encoding.UTF8.GetBytes(polipoConfig)); _process = new Process(); // Configure the process using the StartInfo properties. _process.StartInfo.FileName = runningPath + "/ss_privoxy.exe"; _process.StartInfo.Arguments = " \"" + runningPath + "/privoxy.conf\""; _process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; _process.StartInfo.UseShellExecute = true; _process.StartInfo.CreateNoWindow = true; //_process.StartInfo.RedirectStandardOutput = true; //_process.StartInfo.RedirectStandardError = true; try { _process.Start(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } }
public void Start(Configuration configuration) { Server server = configuration.GetCurrentServer(); if (_process == null) { Process[] existingPolipo = Process.GetProcessesByName("ss_privoxy"); foreach (Process p in existingPolipo.Where(IsChildProcess)) { KillProcess(p); } string polipoConfig = Resources.privoxy_conf; _runningPort = this.GetFreePort(); polipoConfig = polipoConfig.Replace("__SOCKS_PORT__", configuration.localPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_PORT__", _runningPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_IP__", configuration.shareOverLan ? "0.0.0.0" : "127.0.0.1"); FileManager.ByteArrayToFile(Utils.GetTempPath(UniqueConfigFile), Encoding.UTF8.GetBytes(polipoConfig)); _process = new Process(); // Configure the process using the StartInfo properties. _process.StartInfo.FileName = "ss_privoxy.exe"; _process.StartInfo.Arguments = UniqueConfigFile; _process.StartInfo.WorkingDirectory = Utils.GetTempPath(); _process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; _process.StartInfo.UseShellExecute = true; _process.StartInfo.CreateNoWindow = true; _process.Start(); /* * Add this process to job obj associated with this ss process, so that * when ss exit unexpectedly, this process will be forced killed by system. */ PolipoJob.AddProcess(_process.Handle); } RefreshTrayArea(); }
public TCPHandler(ShadowsocksController controller, Configuration config, TCPRelay tcprelay, Socket socket) { _controller = controller; _config = config; _tcprelay = tcprelay; _connection = socket; _proxyTimeout = config.proxy.proxyTimeout * 1000; _serverTimeout = config.GetCurrentServer().timeout * 1000; lastActivity = DateTime.Now; }
public void Start(Configuration configuration) { Server server = configuration.GetCurrentServer(); if (_process == null) { Process[] existingPolipo = Process.GetProcessesByName("ss_privoxy"); foreach (Process p in existingPolipo) { try { p.CloseMainWindow(); p.WaitForExit(100); if (!p.HasExited) { p.Kill(); p.WaitForExit(); } } catch (Exception e) { Logging.LogUsefulException(e); } } string polipoConfig = Resources.privoxy_conf; _runningPort = this.GetFreePort(); polipoConfig = polipoConfig.Replace("__SOCKS_PORT__", configuration.localPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_PORT__", _runningPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_IP__", configuration.shareOverLan ? "0.0.0.0" : "127.0.0.1"); FileManager.ByteArrayToFile(Utils.GetTempPath("privoxy.conf"), Encoding.UTF8.GetBytes(polipoConfig)); _process = new Process(); // Configure the process using the StartInfo properties. _process.StartInfo.FileName = "ss_privoxy.exe"; _process.StartInfo.Arguments = "privoxy.conf"; _process.StartInfo.WorkingDirectory = Utils.GetTempPath(); _process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; _process.StartInfo.UseShellExecute = true; _process.StartInfo.CreateNoWindow = true; _process.Start(); } RefreshTrayArea(); }
public void Start(Configuration configuration) { Server server = configuration.GetCurrentServer(); if (_process == null) { Process[] existingPolipo = Process.GetProcessesByName("ss_privoxy"); foreach (Process p in existingPolipo) { try { p.Kill(); p.WaitForExit(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } string polipoConfig = Resources.privoxy_conf; _runningPort = this.GetFreePort(); polipoConfig = polipoConfig.Replace("__SOCKS_PORT__", configuration.localPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_PORT__", _runningPort.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_IP__", configuration.shareOverLan ? "0.0.0.0" : "127.0.0.1"); FileManager.ByteArrayToFile(temppath + "/privoxy.conf", System.Text.Encoding.UTF8.GetBytes(polipoConfig)); if (!(temppath.EndsWith("\\") || temppath.EndsWith("/"))) { temppath = temppath + "\\"; } _process = new Process(); // Configure the process using the StartInfo properties. _process.StartInfo.FileName = temppath + "ss_privoxy.exe"; _process.StartInfo.Arguments = " \"" + temppath + "privoxy.conf\""; _process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; _process.StartInfo.UseShellExecute = true; _process.StartInfo.CreateNoWindow = true; //_process.StartInfo.RedirectStandardOutput = true; //_process.StartInfo.RedirectStandardError = true; _process.Start(); } RefreshTrayArea(); }
public void Start(Configuration configuration) { Server server = configuration.GetCurrentServer(); if (_process == null) { Process[] existingPolipo = Process.GetProcessesByName("ss_polipo"); foreach (Process p in existingPolipo) { try { p.Kill(); p.WaitForExit(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } string temppath = Path.GetTempPath(); string polipoConfig = Resources.polipo_config; polipoConfig = polipoConfig.Replace("__SOCKS_PORT__", server.local_port.ToString()); polipoConfig = polipoConfig.Replace("__POLIPO_BIND_IP__", configuration.shareOverLan ? "0.0.0.0" : "127.0.0.1"); FileManager.ByteArrayToFile(temppath + "/polipo.conf", System.Text.Encoding.UTF8.GetBytes(polipoConfig)); FileManager.UncompressFile(temppath + "/ss_polipo.exe", Resources.polipo_exe); _process = new Process(); // Configure the process using the StartInfo properties. _process.StartInfo.FileName = temppath + "/ss_polipo.exe"; _process.StartInfo.Arguments = "-c \"" + temppath + "/polipo.conf\""; _process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; _process.StartInfo.UseShellExecute = true; _process.StartInfo.CreateNoWindow = true; //_process.StartInfo.RedirectStandardOutput = true; //_process.StartInfo.RedirectStandardError = true; _process.Start(); } }
public Local(Configuration config) { this._server = config.GetCurrentServer(); _shareOverLAN = config.shareOverLan; //this.encryptor = new Encryptor(config.method, config.password); }