mirror of https://github.com/2dust/v2rayN
parent
e578c75545
commit
57d5e02d6a
|
@ -223,7 +223,7 @@ namespace v2rayN.Forms
|
||||||
}
|
}
|
||||||
|
|
||||||
VmessItem item = config.vmess[k];
|
VmessItem item = config.vmess[k];
|
||||||
|
|
||||||
bool stats = statistics != null && statistics.Enable;
|
bool stats = statistics != null && statistics.Enable;
|
||||||
if (stats)
|
if (stats)
|
||||||
{
|
{
|
||||||
|
@ -1310,7 +1310,7 @@ namespace v2rayN.Forms
|
||||||
|
|
||||||
string fileName = downloadHandle.DownloadFileName;
|
string fileName = downloadHandle.DownloadFileName;
|
||||||
fileName = Utils.GetPath(fileName);
|
fileName = Utils.GetPath(fileName);
|
||||||
FileManager.ZipExtractToFile(fileName);
|
FileManager.ZipExtractToFile(fileName, config.ignoreGeoUpdateCore ? "geo" : "");
|
||||||
|
|
||||||
AppendText(false, UIRes.I18N("MsgUpdateV2rayCoreSuccessfullyMore"));
|
AppendText(false, UIRes.I18N("MsgUpdateV2rayCoreSuccessfullyMore"));
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,7 @@
|
||||||
this.txtKcpmtu = new System.Windows.Forms.TextBox();
|
this.txtKcpmtu = new System.Windows.Forms.TextBox();
|
||||||
this.label6 = new System.Windows.Forms.Label();
|
this.label6 = new System.Windows.Forms.Label();
|
||||||
this.tabPage7 = new System.Windows.Forms.TabPage();
|
this.tabPage7 = new System.Windows.Forms.TabPage();
|
||||||
|
this.chkIgnoreGeoUpdateCore = new System.Windows.Forms.CheckBox();
|
||||||
this.cmbCoreType = new System.Windows.Forms.ComboBox();
|
this.cmbCoreType = new System.Windows.Forms.ComboBox();
|
||||||
this.label4 = new System.Windows.Forms.Label();
|
this.label4 = new System.Windows.Forms.Label();
|
||||||
this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox();
|
this.chkKeepOlderDedupl = new System.Windows.Forms.CheckBox();
|
||||||
|
@ -91,32 +92,31 @@
|
||||||
//
|
//
|
||||||
// btnClose
|
// btnClose
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.btnClose, "btnClose");
|
|
||||||
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||||
|
resources.ApplyResources(this.btnClose, "btnClose");
|
||||||
this.btnClose.Name = "btnClose";
|
this.btnClose.Name = "btnClose";
|
||||||
this.btnClose.UseVisualStyleBackColor = true;
|
this.btnClose.UseVisualStyleBackColor = true;
|
||||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||||
//
|
//
|
||||||
// tabControl1
|
// tabControl1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabControl1, "tabControl1");
|
|
||||||
this.tabControl1.Controls.Add(this.tabPage1);
|
this.tabControl1.Controls.Add(this.tabPage1);
|
||||||
this.tabControl1.Controls.Add(this.tabPage2);
|
this.tabControl1.Controls.Add(this.tabPage2);
|
||||||
this.tabControl1.Controls.Add(this.tabPage6);
|
this.tabControl1.Controls.Add(this.tabPage6);
|
||||||
this.tabControl1.Controls.Add(this.tabPage7);
|
this.tabControl1.Controls.Add(this.tabPage7);
|
||||||
|
resources.ApplyResources(this.tabControl1, "tabControl1");
|
||||||
this.tabControl1.Name = "tabControl1";
|
this.tabControl1.Name = "tabControl1";
|
||||||
this.tabControl1.SelectedIndex = 0;
|
this.tabControl1.SelectedIndex = 0;
|
||||||
//
|
//
|
||||||
// tabPage1
|
// tabPage1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage1, "tabPage1");
|
|
||||||
this.tabPage1.Controls.Add(this.groupBox1);
|
this.tabPage1.Controls.Add(this.groupBox1);
|
||||||
|
resources.ApplyResources(this.tabPage1, "tabPage1");
|
||||||
this.tabPage1.Name = "tabPage1";
|
this.tabPage1.Name = "tabPage1";
|
||||||
this.tabPage1.UseVisualStyleBackColor = true;
|
this.tabPage1.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupBox1
|
// groupBox1
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
|
||||||
this.groupBox1.Controls.Add(this.chkdefAllowInsecure);
|
this.groupBox1.Controls.Add(this.chkdefAllowInsecure);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled2);
|
||||||
this.groupBox1.Controls.Add(this.chksniffingEnabled);
|
this.groupBox1.Controls.Add(this.chksniffingEnabled);
|
||||||
|
@ -134,6 +134,7 @@
|
||||||
this.groupBox1.Controls.Add(this.label5);
|
this.groupBox1.Controls.Add(this.label5);
|
||||||
this.groupBox1.Controls.Add(this.txtlocalPort);
|
this.groupBox1.Controls.Add(this.txtlocalPort);
|
||||||
this.groupBox1.Controls.Add(this.label2);
|
this.groupBox1.Controls.Add(this.label2);
|
||||||
|
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
//
|
//
|
||||||
|
@ -176,12 +177,12 @@
|
||||||
//
|
//
|
||||||
// cmbprotocol2
|
// cmbprotocol2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbprotocol2, "cmbprotocol2");
|
|
||||||
this.cmbprotocol2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbprotocol2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbprotocol2.FormattingEnabled = true;
|
this.cmbprotocol2.FormattingEnabled = true;
|
||||||
this.cmbprotocol2.Items.AddRange(new object[] {
|
this.cmbprotocol2.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbprotocol2.Items"),
|
resources.GetString("cmbprotocol2.Items"),
|
||||||
resources.GetString("cmbprotocol2.Items1")});
|
resources.GetString("cmbprotocol2.Items1")});
|
||||||
|
resources.ApplyResources(this.cmbprotocol2, "cmbprotocol2");
|
||||||
this.cmbprotocol2.Name = "cmbprotocol2";
|
this.cmbprotocol2.Name = "cmbprotocol2";
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
|
@ -196,8 +197,8 @@
|
||||||
//
|
//
|
||||||
// cmbprotocol
|
// cmbprotocol
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbprotocol, "cmbprotocol");
|
|
||||||
this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbprotocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
resources.ApplyResources(this.cmbprotocol, "cmbprotocol");
|
||||||
this.cmbprotocol.FormattingEnabled = true;
|
this.cmbprotocol.FormattingEnabled = true;
|
||||||
this.cmbprotocol.Items.AddRange(new object[] {
|
this.cmbprotocol.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbprotocol.Items"),
|
resources.GetString("cmbprotocol.Items"),
|
||||||
|
@ -223,7 +224,6 @@
|
||||||
//
|
//
|
||||||
// cmbloglevel
|
// cmbloglevel
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbloglevel, "cmbloglevel");
|
|
||||||
this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbloglevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbloglevel.FormattingEnabled = true;
|
this.cmbloglevel.FormattingEnabled = true;
|
||||||
this.cmbloglevel.Items.AddRange(new object[] {
|
this.cmbloglevel.Items.AddRange(new object[] {
|
||||||
|
@ -232,6 +232,7 @@
|
||||||
resources.GetString("cmbloglevel.Items2"),
|
resources.GetString("cmbloglevel.Items2"),
|
||||||
resources.GetString("cmbloglevel.Items3"),
|
resources.GetString("cmbloglevel.Items3"),
|
||||||
resources.GetString("cmbloglevel.Items4")});
|
resources.GetString("cmbloglevel.Items4")});
|
||||||
|
resources.ApplyResources(this.cmbloglevel, "cmbloglevel");
|
||||||
this.cmbloglevel.Name = "cmbloglevel";
|
this.cmbloglevel.Name = "cmbloglevel";
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
|
@ -251,10 +252,10 @@
|
||||||
//
|
//
|
||||||
// tabPage2
|
// tabPage2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage2, "tabPage2");
|
|
||||||
this.tabPage2.Controls.Add(this.linkDnsObjectDoc);
|
this.tabPage2.Controls.Add(this.linkDnsObjectDoc);
|
||||||
this.tabPage2.Controls.Add(this.txtremoteDNS);
|
this.tabPage2.Controls.Add(this.txtremoteDNS);
|
||||||
this.tabPage2.Controls.Add(this.label14);
|
this.tabPage2.Controls.Add(this.label14);
|
||||||
|
resources.ApplyResources(this.tabPage2, "tabPage2");
|
||||||
this.tabPage2.Name = "tabPage2";
|
this.tabPage2.Name = "tabPage2";
|
||||||
this.tabPage2.UseVisualStyleBackColor = true;
|
this.tabPage2.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
@ -263,6 +264,7 @@
|
||||||
resources.ApplyResources(this.linkDnsObjectDoc, "linkDnsObjectDoc");
|
resources.ApplyResources(this.linkDnsObjectDoc, "linkDnsObjectDoc");
|
||||||
this.linkDnsObjectDoc.Name = "linkDnsObjectDoc";
|
this.linkDnsObjectDoc.Name = "linkDnsObjectDoc";
|
||||||
this.linkDnsObjectDoc.TabStop = true;
|
this.linkDnsObjectDoc.TabStop = true;
|
||||||
|
this.linkDnsObjectDoc.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkDnsObjectDoc_LinkClicked);
|
||||||
//
|
//
|
||||||
// txtremoteDNS
|
// txtremoteDNS
|
||||||
//
|
//
|
||||||
|
@ -276,7 +278,6 @@
|
||||||
//
|
//
|
||||||
// tabPage6
|
// tabPage6
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage6, "tabPage6");
|
|
||||||
this.tabPage6.Controls.Add(this.chkKcpcongestion);
|
this.tabPage6.Controls.Add(this.chkKcpcongestion);
|
||||||
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize);
|
this.tabPage6.Controls.Add(this.txtKcpwriteBufferSize);
|
||||||
this.tabPage6.Controls.Add(this.label10);
|
this.tabPage6.Controls.Add(this.label10);
|
||||||
|
@ -290,6 +291,7 @@
|
||||||
this.tabPage6.Controls.Add(this.label7);
|
this.tabPage6.Controls.Add(this.label7);
|
||||||
this.tabPage6.Controls.Add(this.txtKcpmtu);
|
this.tabPage6.Controls.Add(this.txtKcpmtu);
|
||||||
this.tabPage6.Controls.Add(this.label6);
|
this.tabPage6.Controls.Add(this.label6);
|
||||||
|
resources.ApplyResources(this.tabPage6, "tabPage6");
|
||||||
this.tabPage6.Name = "tabPage6";
|
this.tabPage6.Name = "tabPage6";
|
||||||
this.tabPage6.UseVisualStyleBackColor = true;
|
this.tabPage6.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
@ -361,7 +363,7 @@
|
||||||
//
|
//
|
||||||
// tabPage7
|
// tabPage7
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.tabPage7, "tabPage7");
|
this.tabPage7.Controls.Add(this.chkIgnoreGeoUpdateCore);
|
||||||
this.tabPage7.Controls.Add(this.cmbCoreType);
|
this.tabPage7.Controls.Add(this.cmbCoreType);
|
||||||
this.tabPage7.Controls.Add(this.label4);
|
this.tabPage7.Controls.Add(this.label4);
|
||||||
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl);
|
this.tabPage7.Controls.Add(this.chkKeepOlderDedupl);
|
||||||
|
@ -370,17 +372,24 @@
|
||||||
this.tabPage7.Controls.Add(this.chkEnableStatistics);
|
this.tabPage7.Controls.Add(this.chkEnableStatistics);
|
||||||
this.tabPage7.Controls.Add(this.chkAllowLANConn);
|
this.tabPage7.Controls.Add(this.chkAllowLANConn);
|
||||||
this.tabPage7.Controls.Add(this.chkAutoRun);
|
this.tabPage7.Controls.Add(this.chkAutoRun);
|
||||||
|
resources.ApplyResources(this.tabPage7, "tabPage7");
|
||||||
this.tabPage7.Name = "tabPage7";
|
this.tabPage7.Name = "tabPage7";
|
||||||
this.tabPage7.UseVisualStyleBackColor = true;
|
this.tabPage7.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// chkIgnoreGeoUpdateCore
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.chkIgnoreGeoUpdateCore, "chkIgnoreGeoUpdateCore");
|
||||||
|
this.chkIgnoreGeoUpdateCore.Name = "chkIgnoreGeoUpdateCore";
|
||||||
|
this.chkIgnoreGeoUpdateCore.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// cmbCoreType
|
// cmbCoreType
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
|
|
||||||
this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cmbCoreType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cmbCoreType.FormattingEnabled = true;
|
this.cmbCoreType.FormattingEnabled = true;
|
||||||
this.cmbCoreType.Items.AddRange(new object[] {
|
this.cmbCoreType.Items.AddRange(new object[] {
|
||||||
resources.GetString("cmbCoreType.Items"),
|
resources.GetString("cmbCoreType.Items"),
|
||||||
resources.GetString("cmbCoreType.Items1")});
|
resources.GetString("cmbCoreType.Items1")});
|
||||||
|
resources.ApplyResources(this.cmbCoreType, "cmbCoreType");
|
||||||
this.cmbCoreType.Name = "cmbCoreType";
|
this.cmbCoreType.Name = "cmbCoreType";
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
|
@ -396,9 +405,9 @@
|
||||||
//
|
//
|
||||||
// cbFreshrate
|
// cbFreshrate
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.cbFreshrate, "cbFreshrate");
|
|
||||||
this.cbFreshrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
this.cbFreshrate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
this.cbFreshrate.FormattingEnabled = true;
|
this.cbFreshrate.FormattingEnabled = true;
|
||||||
|
resources.ApplyResources(this.cbFreshrate, "cbFreshrate");
|
||||||
this.cbFreshrate.Name = "cbFreshrate";
|
this.cbFreshrate.Name = "cbFreshrate";
|
||||||
//
|
//
|
||||||
// lbFreshrate
|
// lbFreshrate
|
||||||
|
@ -426,9 +435,9 @@
|
||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.panel2, "panel2");
|
|
||||||
this.panel2.Controls.Add(this.btnClose);
|
this.panel2.Controls.Add(this.btnClose);
|
||||||
this.panel2.Controls.Add(this.btnOK);
|
this.panel2.Controls.Add(this.btnOK);
|
||||||
|
resources.ApplyResources(this.panel2, "panel2");
|
||||||
this.panel2.Name = "panel2";
|
this.panel2.Name = "panel2";
|
||||||
//
|
//
|
||||||
// btnOK
|
// btnOK
|
||||||
|
@ -522,5 +531,6 @@
|
||||||
private System.Windows.Forms.Label label14;
|
private System.Windows.Forms.Label label14;
|
||||||
private System.Windows.Forms.ComboBox cmbCoreType;
|
private System.Windows.Forms.ComboBox cmbCoreType;
|
||||||
private System.Windows.Forms.Label label4;
|
private System.Windows.Forms.Label label4;
|
||||||
|
private System.Windows.Forms.CheckBox chkIgnoreGeoUpdateCore;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -120,6 +120,7 @@ namespace v2rayN.Forms
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chkIgnoreGeoUpdateCore.Checked = config.ignoreGeoUpdateCore;
|
||||||
cmbCoreType.SelectedIndex = (int)config.coreType;
|
cmbCoreType.SelectedIndex = (int)config.coreType;
|
||||||
}
|
}
|
||||||
private void btnOK_Click(object sender, EventArgs e)
|
private void btnOK_Click(object sender, EventArgs e)
|
||||||
|
@ -285,6 +286,7 @@ namespace v2rayN.Forms
|
||||||
config.statisticsFreshRate = (int)cbFreshrate.SelectedValue;
|
config.statisticsFreshRate = (int)cbFreshrate.SelectedValue;
|
||||||
config.keepOlderDedupl = chkKeepOlderDedupl.Checked;
|
config.keepOlderDedupl = chkKeepOlderDedupl.Checked;
|
||||||
|
|
||||||
|
config.ignoreGeoUpdateCore = chkIgnoreGeoUpdateCore.Checked;
|
||||||
config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
|
config.coreType = (ECoreType)cmbCoreType.SelectedIndex;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -223,6 +223,12 @@
|
||||||
<data name="tabPage6.Text" xml:space="preserve">
|
<data name="tabPage6.Text" xml:space="preserve">
|
||||||
<value> Core:KCP设置 </value>
|
<value> Core:KCP设置 </value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkIgnoreGeoUpdateCore.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>150, 16</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkIgnoreGeoUpdateCore.Text" xml:space="preserve">
|
||||||
|
<value>更新Core时忽略Geo文件</value>
|
||||||
|
</data>
|
||||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>53, 12</value>
|
<value>53, 12</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace v2rayN.Handler
|
||||||
string remark = string.Empty;
|
string remark = string.Empty;
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
{
|
{
|
||||||
remark = "#" + WebUtility.UrlEncode(item.remarks);
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
}
|
}
|
||||||
url = string.Format("{0}:{1}@{2}:{3}",
|
url = string.Format("{0}:{1}@{2}:{3}",
|
||||||
item.security,
|
item.security,
|
||||||
|
@ -72,7 +72,7 @@ namespace v2rayN.Handler
|
||||||
string remark = string.Empty;
|
string remark = string.Empty;
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
{
|
{
|
||||||
remark = "#" + WebUtility.UrlEncode(item.remarks);
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
}
|
}
|
||||||
url = string.Format("{0}:{1}@{2}:{3}",
|
url = string.Format("{0}:{1}@{2}:{3}",
|
||||||
item.security,
|
item.security,
|
||||||
|
@ -87,12 +87,12 @@ namespace v2rayN.Handler
|
||||||
string remark = string.Empty;
|
string remark = string.Empty;
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
{
|
{
|
||||||
remark = "#" + WebUtility.UrlEncode(item.remarks);
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
}
|
}
|
||||||
string query = string.Empty;
|
string query = string.Empty;
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
{
|
{
|
||||||
query = string.Format("?sni={0}", item.requestHost);
|
query = string.Format("?sni={0}", Utils.UrlEncode(item.requestHost));
|
||||||
}
|
}
|
||||||
url = string.Format("{0}@{1}:{2}",
|
url = string.Format("{0}@{1}:{2}",
|
||||||
item.id,
|
item.id,
|
||||||
|
@ -105,7 +105,7 @@ namespace v2rayN.Handler
|
||||||
string remark = string.Empty;
|
string remark = string.Empty;
|
||||||
if (!Utils.IsNullOrEmpty(item.remarks))
|
if (!Utils.IsNullOrEmpty(item.remarks))
|
||||||
{
|
{
|
||||||
remark = "#" + WebUtility.UrlEncode(item.remarks);
|
remark = "#" + Utils.UrlEncode(item.remarks);
|
||||||
}
|
}
|
||||||
var dicQuery = new Dictionary<string, string>();
|
var dicQuery = new Dictionary<string, string>();
|
||||||
if (!Utils.IsNullOrEmpty(item.flow))
|
if (!Utils.IsNullOrEmpty(item.flow))
|
||||||
|
@ -150,7 +150,7 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
{
|
{
|
||||||
dicQuery.Add("host", item.requestHost);
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "kcp":
|
case "kcp":
|
||||||
|
@ -164,18 +164,18 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
if (!Utils.IsNullOrEmpty(item.path))
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
{
|
{
|
||||||
dicQuery.Add("seed", item.path);
|
dicQuery.Add("seed", Utils.UrlEncode(item.path));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "ws":
|
case "ws":
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
{
|
{
|
||||||
dicQuery.Add("host", item.requestHost);
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
}
|
}
|
||||||
if (!Utils.IsNullOrEmpty(item.path))
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
{
|
{
|
||||||
dicQuery.Add("path", item.path);
|
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -184,11 +184,11 @@ namespace v2rayN.Handler
|
||||||
dicQuery["type"] = "http";
|
dicQuery["type"] = "http";
|
||||||
if (!Utils.IsNullOrEmpty(item.requestHost))
|
if (!Utils.IsNullOrEmpty(item.requestHost))
|
||||||
{
|
{
|
||||||
dicQuery.Add("host", item.requestHost);
|
dicQuery.Add("host", Utils.UrlEncode(item.requestHost));
|
||||||
}
|
}
|
||||||
if (!Utils.IsNullOrEmpty(item.path))
|
if (!Utils.IsNullOrEmpty(item.path))
|
||||||
{
|
{
|
||||||
dicQuery.Add("path", item.path);
|
dicQuery.Add("path", Utils.UrlEncode(item.path));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -201,8 +201,8 @@ namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
dicQuery.Add("headerType", "none");
|
dicQuery.Add("headerType", "none");
|
||||||
}
|
}
|
||||||
dicQuery.Add("quicSecurity", item.requestHost);
|
dicQuery.Add("quicSecurity", Utils.UrlEncode(item.requestHost));
|
||||||
dicQuery.Add("key", item.path);
|
dicQuery.Add("key", Utils.UrlEncode(item.path));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
string query = "?" + string.Join("&", dicQuery.Select(x => x.Key + "=" + x.Value).ToArray());
|
||||||
|
@ -330,7 +330,7 @@ namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
vmessItem.remarks = WebUtility.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1));
|
vmessItem.remarks = Utils.UrlDecode(result.Substring(indexRemark + 1, result.Length - indexRemark - 1));
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
result = result.Substring(0, indexRemark);
|
result = result.Substring(0, indexRemark);
|
||||||
|
@ -383,7 +383,7 @@ namespace v2rayN.Handler
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vmessItem.remarks = WebUtility.UrlDecode(remarks);
|
vmessItem.remarks = Utils.UrlDecode(remarks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (result.StartsWith(Global.vlessProtocol))
|
else if (result.StartsWith(Global.vlessProtocol))
|
||||||
|
@ -509,7 +509,7 @@ namespace v2rayN.Handler
|
||||||
var tag = match.Groups["tag"].Value;
|
var tag = match.Groups["tag"].Value;
|
||||||
if (!Utils.IsNullOrEmpty(tag))
|
if (!Utils.IsNullOrEmpty(tag))
|
||||||
{
|
{
|
||||||
server.remarks = HttpUtility.UrlDecode(tag, Encoding.UTF8);
|
server.remarks = Utils.UrlDecode(tag);
|
||||||
}
|
}
|
||||||
Match details;
|
Match details;
|
||||||
try
|
try
|
||||||
|
@ -591,7 +591,7 @@ namespace v2rayN.Handler
|
||||||
case "ws":
|
case "ws":
|
||||||
string p1 = q["path"] ?? "/";
|
string p1 = q["path"] ?? "/";
|
||||||
string h1 = q["host"] ?? "";
|
string h1 = q["host"] ?? "";
|
||||||
i.requestHost = h1;
|
i.requestHost = Utils.UrlDecode(h1);
|
||||||
i.path = p1;
|
i.path = p1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -600,7 +600,7 @@ namespace v2rayN.Handler
|
||||||
i.network = "h2";
|
i.network = "h2";
|
||||||
string p2 = q["path"] ?? "/";
|
string p2 = q["path"] ?? "/";
|
||||||
string h2 = q["host"] ?? "";
|
string h2 = q["host"] ?? "";
|
||||||
i.requestHost = h2;
|
i.requestHost = Utils.UrlDecode(h2);
|
||||||
i.path = p2;
|
i.path = p2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -609,7 +609,7 @@ namespace v2rayN.Handler
|
||||||
string k = q["key"] ?? "";
|
string k = q["key"] ?? "";
|
||||||
string t3 = q["type"] ?? "none";
|
string t3 = q["type"] ?? "none";
|
||||||
i.headerType = t3;
|
i.headerType = t3;
|
||||||
i.requestHost = s;
|
i.requestHost = Utils.UrlDecode(s);
|
||||||
i.path = k;
|
i.path = k;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -645,30 +645,30 @@ namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
case "tcp":
|
case "tcp":
|
||||||
item.headerType = query["headerType"] ?? "none";
|
item.headerType = query["headerType"] ?? "none";
|
||||||
item.requestHost = query["host"] ?? "";
|
item.requestHost = Utils.UrlDecode(query["host"] ?? "");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "kcp":
|
case "kcp":
|
||||||
item.headerType = query["headerType"] ?? "none";
|
item.headerType = query["headerType"] ?? "none";
|
||||||
item.path = query["seed"] ?? "";
|
item.path = Utils.UrlDecode(query["seed"] ?? "");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "ws":
|
case "ws":
|
||||||
item.requestHost = query["host"] ?? "";
|
item.requestHost = Utils.UrlDecode(query["host"] ?? "");
|
||||||
item.path = query["path"] ?? "/";
|
item.path = Utils.UrlDecode(query["path"] ?? "/");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "http":
|
case "http":
|
||||||
case "h2":
|
case "h2":
|
||||||
item.network = "h2";
|
item.network = "h2";
|
||||||
item.requestHost = query["host"] ?? "";
|
item.requestHost = Utils.UrlDecode(query["host"] ?? "");
|
||||||
item.path = query["path"] ?? "/";
|
item.path = Utils.UrlDecode(query["path"] ?? "/");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "quic":
|
case "quic":
|
||||||
item.headerType = query["headerType"] ?? "none";
|
item.headerType = query["headerType"] ?? "none";
|
||||||
item.requestHost = query["quicSecurity"] ?? "none";
|
item.requestHost = query["quicSecurity"] ?? "none";
|
||||||
item.path = query["key"] ?? "";
|
item.path = Utils.UrlDecode(query["key"] ?? "");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -170,6 +170,10 @@ namespace v2rayN.Mode
|
||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
public bool ignoreGeoUpdateCore
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
#region 函数
|
#region 函数
|
||||||
|
|
||||||
|
|
|
@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
|
||||||
// 方法是按如下所示使用“*”:
|
// 方法是按如下所示使用“*”:
|
||||||
//[assembly: AssemblyVersion("1.0.*")]
|
//[assembly: AssemblyVersion("1.0.*")]
|
||||||
//[assembly: AssemblyVersion("1.0.0")]
|
//[assembly: AssemblyVersion("1.0.0")]
|
||||||
[assembly: AssemblyFileVersion("4.4")]
|
[assembly: AssemblyFileVersion("4.5")]
|
||||||
|
|
|
@ -68,7 +68,7 @@ namespace v2rayN.Tool
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static bool ZipExtractToFile(string fileName)
|
public static bool ZipExtractToFile(string fileName, string ignoredName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -82,6 +82,10 @@ namespace v2rayN.Tool
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (!Utils.IsNullOrEmpty(ignoredName) && entry.Name.Contains(ignoredName))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
entry.ExtractToFile(Utils.GetPath(entry.Name), true);
|
entry.ExtractToFile(Utils.GetPath(entry.Name), true);
|
||||||
}
|
}
|
||||||
catch (IOException ex)
|
catch (IOException ex)
|
||||||
|
|
|
@ -20,11 +20,12 @@ using ZXing.QrCode;
|
||||||
using System.Security.Principal;
|
using System.Security.Principal;
|
||||||
using v2rayN.Base;
|
using v2rayN.Base;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
using System.Web;
|
||||||
|
|
||||||
namespace v2rayN
|
namespace v2rayN
|
||||||
{
|
{
|
||||||
class Utils
|
class Utils
|
||||||
{
|
{
|
||||||
|
|
||||||
#region 资源Json操作
|
#region 资源Json操作
|
||||||
|
|
||||||
|
@ -369,6 +370,14 @@ namespace v2rayN
|
||||||
result = list;
|
result = list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string UrlEncode(string url)
|
||||||
|
{
|
||||||
|
return HttpUtility.UrlEncode(url);
|
||||||
|
}
|
||||||
|
public static string UrlDecode(string url)
|
||||||
|
{
|
||||||
|
return HttpUtility.UrlDecode(url);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue