57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using System;
|
|
using Shadowsocks.Model;
|
|
using Shadowsocks.Util.SystemProxy;
|
|
|
|
namespace Shadowsocks.Controller
|
|
{
|
|
public static class SystemProxy
|
|
{
|
|
private static string GetTimestamp(DateTime value)
|
|
{
|
|
return value.ToString("yyyyMMddHHmmssfff");
|
|
}
|
|
|
|
public static void Update(Configuration config, bool forceDisable, PACServer pacSrv)
|
|
{
|
|
bool global = config.global;
|
|
bool enabled = config.enabled;
|
|
|
|
if (forceDisable)
|
|
{
|
|
enabled = false;
|
|
}
|
|
|
|
try
|
|
{
|
|
if (enabled)
|
|
{
|
|
if (global)
|
|
{
|
|
Sysproxy.SetIEProxy(true, true, "127.0.0.1:" + config.localPort.ToString(), null);
|
|
}
|
|
else
|
|
{
|
|
string pacUrl;
|
|
if (config.useOnlinePac && !config.pacUrl.IsNullOrEmpty())
|
|
{
|
|
pacUrl = config.pacUrl;
|
|
}
|
|
else
|
|
{
|
|
pacUrl = pacSrv.PacUrl;
|
|
}
|
|
Sysproxy.SetIEProxy(true, false, null, pacUrl);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Sysproxy.SetIEProxy(false, false, null, null);
|
|
}
|
|
}
|
|
catch (ProxyException ex)
|
|
{
|
|
Logging.LogUsefulException(ex);
|
|
}
|
|
}
|
|
}
|
|
} |