compress polipo
This commit is contained in:
@@ -3,6 +3,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
|
||||
namespace shadowsocks_csharp
|
||||
@@ -28,6 +29,32 @@ namespace shadowsocks_csharp
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void UncompressFile(string fileName, byte[] content)
|
||||
{
|
||||
FileStream destinationFile = File.Create(fileName);
|
||||
|
||||
// Because the uncompressed size of the file is unknown,
|
||||
// we are using an arbitrary buffer size.
|
||||
byte[] buffer = new byte[4096];
|
||||
int n;
|
||||
|
||||
using (GZipStream input = new GZipStream(new MemoryStream(content),
|
||||
CompressionMode.Decompress, false))
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
n = input.Read(buffer, 0, buffer.Length);
|
||||
if (n == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
destinationFile.Write(buffer, 0, n);
|
||||
}
|
||||
}
|
||||
destinationFile.Close();
|
||||
}
|
||||
|
||||
public void Start(Config config)
|
||||
{
|
||||
if (process == null)
|
||||
@@ -42,7 +69,7 @@ namespace shadowsocks_csharp
|
||||
string polipoConfig = Resources.polipo_config;
|
||||
polipoConfig = polipoConfig.Replace("__SOCKS_PORT__", config.local_port.ToString());
|
||||
ByteArrayToFile(temppath + "/polipo.conf", System.Text.Encoding.UTF8.GetBytes(polipoConfig));
|
||||
ByteArrayToFile(temppath + "/ss_polipo.exe", Resources.polipo);
|
||||
UncompressFile(temppath + "/ss_polipo.exe", Resources.polipo_exe);
|
||||
|
||||
process = new Process();
|
||||
// Configure the process using the StartInfo properties.
|
||||
|
||||
+10
-10
@@ -60,16 +60,6 @@ namespace shadowsocks_csharp.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
internal static byte[] polipo {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("polipo", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to # Sample configuration file for Polipo. -*-sh-*-
|
||||
///
|
||||
@@ -95,6 +85,16 @@ namespace shadowsocks_csharp.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Byte[].
|
||||
/// </summary>
|
||||
internal static byte[] polipo_exe {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("polipo_exe", resourceCulture);
|
||||
return ((byte[])(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to // Generated by gfwlist2pac
|
||||
///// https://github.com/clowwindy/gfwlist2pac
|
||||
|
||||
@@ -118,12 +118,12 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="polipo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\polipo.exe;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="polipo_config" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\config.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312</value>
|
||||
</data>
|
||||
<data name="polipo_exe" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\polipo.exe.gz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="proxy_pac" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\proxy.pac.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;gb2312</value>
|
||||
</data>
|
||||
|
||||
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -115,6 +115,7 @@
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="app.config" />
|
||||
<None Include="polipo.exe.gz" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
|
||||
Reference in New Issue
Block a user