@@ -1,4 +1,5 @@ | |||||
using System; | |||||
using Shadowsocks.Util; | |||||
using System; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.IO; | using System.IO; | ||||
using System.Net.Sockets; | using System.Net.Sockets; | ||||
@@ -14,7 +15,7 @@ namespace Shadowsocks.Controller | |||||
{ | { | ||||
try | try | ||||
{ | { | ||||
string temppath = Path.GetTempPath(); | |||||
string temppath = Utils.GetTempPath(); | |||||
LogFile = Path.Combine(temppath, "shadowsocks.log"); | LogFile = Path.Combine(temppath, "shadowsocks.log"); | ||||
FileStream fs = new FileStream(LogFile, FileMode.Append); | FileStream fs = new FileStream(LogFile, FileMode.Append); | ||||
StreamWriterWithTimestamp sw = new StreamWriterWithTimestamp(fs); | StreamWriterWithTimestamp sw = new StreamWriterWithTimestamp(fs); | ||||
@@ -6,7 +6,8 @@ using System.Net.NetworkInformation; | |||||
using System.Threading; | using System.Threading; | ||||
using Shadowsocks.Model; | using Shadowsocks.Model; | ||||
using System.Reflection; | using System.Reflection; | ||||
using Shadowsocks.Util; | |||||
namespace Shadowsocks.Controller | namespace Shadowsocks.Controller | ||||
{ | { | ||||
class AvailabilityStatistics | class AvailabilityStatistics | ||||
@@ -25,7 +26,7 @@ namespace Shadowsocks.Controller | |||||
//static constructor to initialize every public static fields before refereced | //static constructor to initialize every public static fields before refereced | ||||
static AvailabilityStatistics() | static AvailabilityStatistics() | ||||
{ | { | ||||
string temppath = Path.GetTempPath(); | |||||
string temppath = Utils.GetTempPath(); | |||||
AvailabilityStatisticsFile = Path.Combine(temppath, StatisticsFilesName); | AvailabilityStatisticsFile = Path.Combine(temppath, StatisticsFilesName); | ||||
} | } | ||||
@@ -9,6 +9,7 @@ using System.Text; | |||||
using System.Net.NetworkInformation; | using System.Net.NetworkInformation; | ||||
using System.Net; | using System.Net; | ||||
using System.Runtime.InteropServices; | using System.Runtime.InteropServices; | ||||
using Shadowsocks.Util; | |||||
namespace Shadowsocks.Controller | namespace Shadowsocks.Controller | ||||
{ | { | ||||
@@ -20,7 +21,7 @@ namespace Shadowsocks.Controller | |||||
static PolipoRunner() | static PolipoRunner() | ||||
{ | { | ||||
temppath = Path.GetTempPath(); | |||||
temppath = Utils.GetTempPath(); | |||||
try | try | ||||
{ | { | ||||
FileManager.UncompressFile(temppath + "/ss_privoxy.exe", Resources.privoxy_exe); | FileManager.UncompressFile(temppath + "/ss_privoxy.exe", Resources.privoxy_exe); | ||||
@@ -1,5 +1,6 @@ | |||||
using Shadowsocks.Controller; | using Shadowsocks.Controller; | ||||
using Shadowsocks.Properties; | using Shadowsocks.Properties; | ||||
using Shadowsocks.Util; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.IO; | using System.IO; | ||||
@@ -18,7 +19,7 @@ namespace Shadowsocks.Encryption | |||||
static PolarSSL() | static PolarSSL() | ||||
{ | { | ||||
string tempPath = Path.GetTempPath(); | |||||
string tempPath = Utils.GetTempPath(); | |||||
string dllPath = tempPath + "/libsscrypto.dll"; | string dllPath = tempPath + "/libsscrypto.dll"; | ||||
try | try | ||||
{ | { | ||||
@@ -1,5 +1,6 @@ | |||||
using Shadowsocks.Controller; | using Shadowsocks.Controller; | ||||
using Shadowsocks.Properties; | using Shadowsocks.Properties; | ||||
using Shadowsocks.Util; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.IO; | using System.IO; | ||||
@@ -14,7 +15,7 @@ namespace Shadowsocks.Encryption | |||||
static Sodium() | static Sodium() | ||||
{ | { | ||||
string tempPath = Path.GetTempPath(); | |||||
string tempPath = Utils.GetTempPath(); | |||||
string dllPath = tempPath + "/libsscrypto.dll"; | string dllPath = tempPath + "/libsscrypto.dll"; | ||||
try | try | ||||
{ | { | ||||
@@ -5,11 +5,29 @@ using System.IO; | |||||
using System.IO.Compression; | using System.IO.Compression; | ||||
using System.Runtime.InteropServices; | using System.Runtime.InteropServices; | ||||
using System.Text; | using System.Text; | ||||
using System.Windows.Forms; | |||||
namespace Shadowsocks.Util | namespace Shadowsocks.Util | ||||
{ | { | ||||
public class Utils | public class Utils | ||||
{ | { | ||||
// return path to store temporary files | |||||
public static string GetTempPath() | |||||
{ | |||||
if (File.Exists(Application.StartupPath + "/shadowsocks_portable_mode.txt")) | |||||
{ | |||||
try | |||||
{ | |||||
Directory.CreateDirectory(Application.StartupPath + "/temp"); | |||||
} catch (Exception e) | |||||
{ | |||||
Console.WriteLine(e); | |||||
} | |||||
return Application.StartupPath + "/temp"; | |||||
} | |||||
return Path.GetTempPath(); | |||||
} | |||||
public static void ReleaseMemory(bool removePages) | public static void ReleaseMemory(bool removePages) | ||||
{ | { | ||||
// release any unused pages | // release any unused pages | ||||