mirror of https://github.com/2dust/v2rayN
Code clean
parent
fcdb61bfbf
commit
f5deb8e168
|
@ -1,4 +1,6 @@
|
|||
namespace v2rayN
|
||||
using v2rayN.Mode;
|
||||
|
||||
namespace v2rayN
|
||||
{
|
||||
internal class Global
|
||||
{
|
||||
|
@ -30,18 +32,15 @@
|
|||
public const string ConfigDB = "guiNDB.db";
|
||||
public const string CoreConfigFileName = "config.json";
|
||||
public const string CorePreConfigFileName = "configPre.json";
|
||||
|
||||
public const string V2raySampleClient = "v2rayN.Sample.SampleClientConfig";
|
||||
public const string SingboxSampleClient = "v2rayN.Sample.SingboxSampleClientConfig";
|
||||
public const string V2raySampleHttprequestFileName = "v2rayN.Sample.SampleHttprequest";
|
||||
public const string V2raySampleHttpresponseFileName = "v2rayN.Sample.SampleHttpresponse";
|
||||
public const string V2raySampleInbound = "v2rayN.Sample.SampleInbound";
|
||||
public const string CustomRoutingFileName = "v2rayN.Sample.custom_routing_";
|
||||
|
||||
public const string TunSingboxDNSFileName = "v2rayN.Sample.tun_singbox_dns";
|
||||
public const string TunSingboxInboundFileName = "v2rayN.Sample.tun_singbox_inbound";
|
||||
public const string TunSingboxRulesFileName = "v2rayN.Sample.tun_singbox_rules";
|
||||
|
||||
public const string DNSV2rayNormalFileName = "v2rayN.Sample.dns_v2ray_normal";
|
||||
public const string DNSSingboxNormalFileName = "v2rayN.Sample.dns_singbox_normal";
|
||||
|
||||
|
@ -61,24 +60,8 @@
|
|||
public const string Loopback = "127.0.0.1";
|
||||
public const string InboundAPITagName = "api";
|
||||
public const string InboundAPIProtocal = "dokodemo-door";
|
||||
|
||||
public const string vmessProtocol = "vmess://";
|
||||
public const string vmessProtocolLite = "vmess";
|
||||
public const string ssProtocol = "ss://";
|
||||
public const string ssProtocolLite = "shadowsocks";
|
||||
public const string socksProtocol = "socks://";
|
||||
public const string socksProtocolLite = "socks";
|
||||
public const string httpProtocol = "http://";
|
||||
public const string httpsProtocol = "https://";
|
||||
public const string vlessProtocol = "vless://";
|
||||
public const string vlessProtocolLite = "vless";
|
||||
public const string trojanProtocol = "trojan://";
|
||||
public const string trojanProtocolLite = "trojan";
|
||||
public const string hysteria2Protocol = "hysteria2://";
|
||||
public const string hysteria2Protocol2 = "hy2://";
|
||||
public const string hysteria2ProtocolLite = "hysteria2";
|
||||
public const string tuicProtocol = "tuic://";
|
||||
public const string tuicProtocolLite = "tuic";
|
||||
public const string HttpProtocol = "http://";
|
||||
public const string HttpsProtocol = "https://";
|
||||
|
||||
public const string UserEMail = "t@t.tt";
|
||||
public const string MyRegPath = "Software\\v2rayNGUI";
|
||||
|
@ -132,7 +115,7 @@
|
|||
@"http://cachefly.cachefly.net/10mb.test"
|
||||
};
|
||||
|
||||
public static readonly Dictionary<string, string> UserAgentTxt = new()
|
||||
public static readonly Dictionary<string, string> UserAgentTxts = new()
|
||||
{
|
||||
{"chrome","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36" },
|
||||
{"firefox","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0" },
|
||||
|
@ -141,6 +124,29 @@
|
|||
{"none",""}
|
||||
};
|
||||
|
||||
public const string Hysteria2ProtocolShare = "hy2://";
|
||||
public static readonly Dictionary<EConfigType, string> ProtocolShares = new()
|
||||
{
|
||||
{EConfigType.VMess,"vmess://"},
|
||||
{EConfigType.Shadowsocks,"ss://"},
|
||||
{EConfigType.Socks,"socks://"},
|
||||
{EConfigType.VLESS,"vless://"},
|
||||
{EConfigType.Trojan,"trojan://"},
|
||||
{EConfigType.Hysteria2,"hysteria2://"},
|
||||
{EConfigType.Tuic,"tuic://"}
|
||||
};
|
||||
|
||||
public static readonly Dictionary<EConfigType, string> ProtocolTypes = new()
|
||||
{
|
||||
{EConfigType.VMess,"vmess"},
|
||||
{EConfigType.Shadowsocks,"shadowsocks"},
|
||||
{EConfigType.Socks,"socks"},
|
||||
{EConfigType.VLESS,"vless"},
|
||||
{EConfigType.Trojan,"trojan"},
|
||||
{EConfigType.Hysteria2,"hysteria2"},
|
||||
{EConfigType.Tuic,"tuic"}
|
||||
};
|
||||
|
||||
public static readonly List<string> VmessSecuritys = new() { "aes-128-gcm", "chacha20-poly1305", "auto", "none", "zero" };
|
||||
public static readonly List<string> SsSecuritys = new() { "aes-256-gcm", "aes-128-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305", "none", "plain" };
|
||||
public static readonly List<string> SsSecuritysInSagerNet = new() { "none", "2022-blake3-aes-128-gcm", "2022-blake3-aes-256-gcm", "2022-blake3-chacha20-poly1305", "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", "xchacha20-ietf-poly1305", "rc4", "rc4-md5", "aes-128-ctr", "aes-192-ctr", "aes-256-ctr", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", "aes-128-cfb8", "aes-192-cfb8", "aes-256-cfb8", "aes-128-ofb", "aes-192-ofb", "aes-256-ofb", "bf-cfb", "cast5-cfb", "des-cfb", "idea-cfb", "rc2-cfb", "seed-cfb", "camellia-128-cfb", "camellia-192-cfb", "camellia-256-cfb", "camellia-128-cfb8", "camellia-192-cfb8", "camellia-256-cfb8", "salsa20", "chacha20", "chacha20-ietf", "xchacha20" };
|
||||
|
|
|
@ -1051,7 +1051,7 @@ namespace v2rayN.Handler
|
|||
foreach (string str in arrData)
|
||||
{
|
||||
//maybe sub
|
||||
if (!isSub && (str.StartsWith(Global.httpsProtocol) || str.StartsWith(Global.httpProtocol)))
|
||||
if (!isSub && (str.StartsWith(Global.HttpsProtocol) || str.StartsWith(Global.HttpProtocol)))
|
||||
{
|
||||
if (AddSubItem(ref config, str) == 0)
|
||||
{
|
||||
|
|
|
@ -222,7 +222,7 @@ namespace v2rayN.Handler
|
|||
|
||||
if (node.configType == EConfigType.VMess)
|
||||
{
|
||||
outbound.type = Global.vmessProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.VMess];
|
||||
|
||||
outbound.uuid = node.id;
|
||||
outbound.alter_id = node.alterId;
|
||||
|
@ -239,7 +239,7 @@ namespace v2rayN.Handler
|
|||
}
|
||||
else if (node.configType == EConfigType.Shadowsocks)
|
||||
{
|
||||
outbound.type = Global.ssProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.Shadowsocks];
|
||||
|
||||
outbound.method = LazyConfig.Instance.GetShadowsocksSecuritys(node).Contains(node.security) ? node.security : "none";
|
||||
outbound.password = node.id;
|
||||
|
@ -248,7 +248,7 @@ namespace v2rayN.Handler
|
|||
}
|
||||
else if (node.configType == EConfigType.Socks)
|
||||
{
|
||||
outbound.type = Global.socksProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.Socks];
|
||||
|
||||
outbound.version = "5";
|
||||
if (!Utils.IsNullOrEmpty(node.security)
|
||||
|
@ -260,7 +260,7 @@ namespace v2rayN.Handler
|
|||
}
|
||||
else if (node.configType == EConfigType.VLESS)
|
||||
{
|
||||
outbound.type = Global.vlessProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.VLESS];
|
||||
|
||||
outbound.uuid = node.id;
|
||||
|
||||
|
@ -277,7 +277,7 @@ namespace v2rayN.Handler
|
|||
}
|
||||
else if (node.configType == EConfigType.Trojan)
|
||||
{
|
||||
outbound.type = Global.trojanProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.Trojan];
|
||||
|
||||
outbound.password = node.id;
|
||||
|
||||
|
@ -285,7 +285,7 @@ namespace v2rayN.Handler
|
|||
}
|
||||
else if (node.configType == EConfigType.Hysteria2)
|
||||
{
|
||||
outbound.type = Global.hysteria2ProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.Hysteria2];
|
||||
|
||||
outbound.password = node.id;
|
||||
|
||||
|
@ -296,7 +296,7 @@ namespace v2rayN.Handler
|
|||
}
|
||||
else if (node.configType == EConfigType.Tuic)
|
||||
{
|
||||
outbound.type = Global.tuicProtocolLite;
|
||||
outbound.type = Global.ProtocolTypes[EConfigType.Tuic];
|
||||
|
||||
outbound.uuid = node.id;
|
||||
outbound.password = node.security;
|
||||
|
|
|
@ -336,7 +336,7 @@ namespace v2rayN.Handler
|
|||
|
||||
outboundMux(node, outbound, _config.coreBasicItem.muxEnabled);
|
||||
|
||||
outbound.protocol = Global.vmessProtocolLite;
|
||||
outbound.protocol = Global.ProtocolTypes[EConfigType.VMess];
|
||||
outbound.settings.servers = null;
|
||||
}
|
||||
else if (node.configType == EConfigType.Shadowsocks)
|
||||
|
@ -361,7 +361,7 @@ namespace v2rayN.Handler
|
|||
|
||||
outboundMux(node, outbound, false);
|
||||
|
||||
outbound.protocol = Global.ssProtocolLite;
|
||||
outbound.protocol = Global.ProtocolTypes[EConfigType.Shadowsocks];
|
||||
outbound.settings.vnext = null;
|
||||
}
|
||||
else if (node.configType == EConfigType.Socks)
|
||||
|
@ -396,7 +396,7 @@ namespace v2rayN.Handler
|
|||
|
||||
outboundMux(node, outbound, false);
|
||||
|
||||
outbound.protocol = Global.socksProtocolLite;
|
||||
outbound.protocol = Global.ProtocolTypes[EConfigType.Socks];
|
||||
outbound.settings.vnext = null;
|
||||
}
|
||||
else if (node.configType == EConfigType.VLESS)
|
||||
|
@ -445,7 +445,7 @@ namespace v2rayN.Handler
|
|||
outboundMux(node, outbound, _config.coreBasicItem.muxEnabled);
|
||||
}
|
||||
|
||||
outbound.protocol = Global.vlessProtocolLite;
|
||||
outbound.protocol = Global.ProtocolTypes[EConfigType.VLESS];
|
||||
outbound.settings.servers = null;
|
||||
}
|
||||
else if (node.configType == EConfigType.Trojan)
|
||||
|
@ -469,7 +469,7 @@ namespace v2rayN.Handler
|
|||
|
||||
outboundMux(node, outbound, false);
|
||||
|
||||
outbound.protocol = Global.trojanProtocolLite;
|
||||
outbound.protocol = Global.ProtocolTypes[EConfigType.Trojan];
|
||||
outbound.settings.vnext = null;
|
||||
}
|
||||
boundStreamSettings(node, outbound.streamSettings);
|
||||
|
@ -515,7 +515,7 @@ namespace v2rayN.Handler
|
|||
{
|
||||
try
|
||||
{
|
||||
useragent = Global.UserAgentTxt[_config.coreBasicItem.defUserAgent];
|
||||
useragent = Global.UserAgentTxts[_config.coreBasicItem.defUserAgent];
|
||||
}
|
||||
catch (KeyNotFoundException)
|
||||
{
|
||||
|
|
|
@ -68,7 +68,7 @@ namespace v2rayN.Handler
|
|||
|
||||
url = Utils.ToJson(vmessQRCode);
|
||||
url = Utils.Base64Encode(url);
|
||||
url = $"{Global.vmessProtocol}{url}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.VMess]}{url}";
|
||||
|
||||
return url;
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ namespace v2rayN.Handler
|
|||
//new Sip002
|
||||
var pw = Utils.Base64Encode($"{item.security}:{item.id}");
|
||||
url = $"{pw}@{GetIpv6(item.address)}:{item.port}";
|
||||
url = $"{Global.ssProtocol}{url}{remark}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.Shadowsocks]}{url}{remark}";
|
||||
return url;
|
||||
}
|
||||
|
||||
|
@ -112,7 +112,7 @@ namespace v2rayN.Handler
|
|||
//new
|
||||
var pw = Utils.Base64Encode($"{item.security}:{item.id}");
|
||||
url = $"{pw}@{GetIpv6(item.address)}:{item.port}";
|
||||
url = $"{Global.socksProtocol}{url}{remark}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.Socks]}{url}{remark}";
|
||||
return url;
|
||||
}
|
||||
|
||||
|
@ -132,7 +132,7 @@ namespace v2rayN.Handler
|
|||
item.id,
|
||||
GetIpv6(item.address),
|
||||
item.port);
|
||||
url = $"{Global.trojanProtocol}{url}{query}{remark}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.Trojan]}{url}{query}{remark}";
|
||||
return url;
|
||||
}
|
||||
|
||||
|
@ -160,7 +160,7 @@ namespace v2rayN.Handler
|
|||
item.id,
|
||||
GetIpv6(item.address),
|
||||
item.port);
|
||||
url = $"{Global.vlessProtocol}{url}{query}{remark}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.VLESS]}{url}{query}{remark}";
|
||||
return url;
|
||||
}
|
||||
|
||||
|
@ -189,7 +189,7 @@ namespace v2rayN.Handler
|
|||
item.id,
|
||||
GetIpv6(item.address),
|
||||
item.port);
|
||||
url = $"{Global.hysteria2Protocol}{url}{query}{remark}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.Hysteria2]}{url}{query}{remark}";
|
||||
return url;
|
||||
}
|
||||
|
||||
|
@ -218,7 +218,7 @@ namespace v2rayN.Handler
|
|||
$"{item.id}:{item.security}",
|
||||
GetIpv6(item.address),
|
||||
item.port);
|
||||
url = $"{Global.tuicProtocol}{url}{query}{remark}";
|
||||
url = $"{Global.ProtocolShares[EConfigType.Tuic]}{url}{query}{remark}";
|
||||
return url;
|
||||
}
|
||||
|
||||
|
@ -359,7 +359,7 @@ namespace v2rayN.Handler
|
|||
return null;
|
||||
}
|
||||
|
||||
if (result.StartsWith(Global.vmessProtocol))
|
||||
if (result.StartsWith(Global.ProtocolShares[EConfigType.VMess]))
|
||||
{
|
||||
int indexSplit = result.IndexOf("?");
|
||||
if (indexSplit > 0)
|
||||
|
@ -371,7 +371,7 @@ namespace v2rayN.Handler
|
|||
profileItem = ResolveVmess(result, out msg);
|
||||
}
|
||||
}
|
||||
else if (result.StartsWith(Global.ssProtocol))
|
||||
else if (result.StartsWith(Global.ProtocolShares[EConfigType.Shadowsocks]))
|
||||
{
|
||||
msg = ResUI.ConfigurationFormatIncorrect;
|
||||
|
||||
|
@ -387,7 +387,7 @@ namespace v2rayN.Handler
|
|||
|
||||
profileItem.configType = EConfigType.Shadowsocks;
|
||||
}
|
||||
else if (result.StartsWith(Global.socksProtocol))
|
||||
else if (result.StartsWith(Global.ProtocolShares[EConfigType.Socks]))
|
||||
{
|
||||
msg = ResUI.ConfigurationFormatIncorrect;
|
||||
|
||||
|
@ -403,23 +403,23 @@ namespace v2rayN.Handler
|
|||
|
||||
profileItem.configType = EConfigType.Socks;
|
||||
}
|
||||
else if (result.StartsWith(Global.trojanProtocol))
|
||||
else if (result.StartsWith(Global.ProtocolShares[EConfigType.Trojan]))
|
||||
{
|
||||
msg = ResUI.ConfigurationFormatIncorrect;
|
||||
|
||||
profileItem = ResolveTrojan(result);
|
||||
}
|
||||
else if (result.StartsWith(Global.vlessProtocol))
|
||||
else if (result.StartsWith(Global.ProtocolShares[EConfigType.VLESS]))
|
||||
{
|
||||
profileItem = ResolveStdVLESS(result);
|
||||
}
|
||||
else if (result.StartsWith(Global.hysteria2Protocol) || result.StartsWith(Global.hysteria2Protocol2))
|
||||
else if (result.StartsWith(Global.ProtocolShares[EConfigType.Hysteria2]) || result.StartsWith(Global.Hysteria2ProtocolShare))
|
||||
{
|
||||
msg = ResUI.ConfigurationFormatIncorrect;
|
||||
|
||||
profileItem = ResolveHysteria2(result);
|
||||
}
|
||||
else if (result.StartsWith(Global.tuicProtocol))
|
||||
else if (result.StartsWith(Global.ProtocolShares[EConfigType.Tuic]))
|
||||
{
|
||||
profileItem = ResolveTuic(result);
|
||||
}
|
||||
|
@ -447,7 +447,7 @@ namespace v2rayN.Handler
|
|||
configType = EConfigType.VMess
|
||||
};
|
||||
|
||||
result = result[Global.vmessProtocol.Length..];
|
||||
result = result[Global.ProtocolShares[EConfigType.VMess].Length..];
|
||||
result = Utils.Base64Decode(result);
|
||||
|
||||
//转成Json
|
||||
|
@ -495,7 +495,7 @@ namespace v2rayN.Handler
|
|||
{
|
||||
configType = EConfigType.VMess
|
||||
};
|
||||
result = result[Global.vmessProtocol.Length..];
|
||||
result = result[Global.ProtocolShares[EConfigType.VMess].Length..];
|
||||
int indexSplit = result.IndexOf("?");
|
||||
if (indexSplit > 0)
|
||||
{
|
||||
|
@ -712,7 +712,7 @@ namespace v2rayN.Handler
|
|||
{
|
||||
configType = EConfigType.Socks
|
||||
};
|
||||
result = result[Global.socksProtocol.Length..];
|
||||
result = result[Global.ProtocolShares[EConfigType.Socks].Length..];
|
||||
//remark
|
||||
int indexRemark = result.IndexOf("#");
|
||||
if (indexRemark > 0)
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace v2rayN.Handler
|
|||
{
|
||||
if (_channel == null)
|
||||
{
|
||||
_channel = GrpcChannel.ForAddress($"{Global.httpProtocol}{Global.Loopback}:{Global.StatePort}");
|
||||
_channel = GrpcChannel.ForAddress($"{Global.HttpProtocol}{Global.Loopback}:{Global.StatePort}");
|
||||
_client = new StatsService.StatsServiceClient(_channel);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ namespace v2rayN.Handler
|
|||
else if (type == ESysProxyType.Pac)
|
||||
{
|
||||
PacHandler.Start(Utils.GetConfigPath(), port, portPac);
|
||||
var strProxy = $"{Global.httpProtocol}{Global.Loopback}:{portPac}/pac?t={DateTime.Now.Ticks}";
|
||||
var strProxy = $"{Global.HttpProtocol}{Global.Loopback}:{portPac}/pac?t={DateTime.Now.Ticks}";
|
||||
ProxySetting.SetProxy(strProxy, "", 4); // use pac script url for auto-config proxy
|
||||
}
|
||||
|
||||
|
|
|
@ -180,7 +180,7 @@ namespace v2rayN.Handler
|
|||
//_updateFunc(false, $"{hashCode}{ResUI.MsgNoValidSubscription}");
|
||||
continue;
|
||||
}
|
||||
if (!url.StartsWith(Global.httpsProtocol) && !url.StartsWith(Global.httpProtocol))
|
||||
if (!url.StartsWith(Global.HttpsProtocol) && !url.StartsWith(Global.HttpProtocol))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue