mirror of https://github.com/2dust/v2rayN
Improve subscription update
parent
069d47f01b
commit
fd7d688e6b
|
@ -4,6 +4,7 @@ using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Net.Http.Headers;
|
using System.Net.Http.Headers;
|
||||||
|
using System.Net.Sockets;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -67,6 +68,10 @@ namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
//Utils.SaveLog(ex.Message, ex);
|
//Utils.SaveLog(ex.Message, ex);
|
||||||
Error?.Invoke(this, new ErrorEventArgs(ex));
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
{
|
||||||
|
Error?.Invoke(this, new ErrorEventArgs(ex.InnerException));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -105,6 +110,10 @@ namespace v2rayN.Handler
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
|
|
||||||
Error?.Invoke(this, new ErrorEventArgs(ex));
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
{
|
||||||
|
Error?.Invoke(this, new ErrorEventArgs(ex.InnerException));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,6 +176,10 @@ namespace v2rayN.Handler
|
||||||
{
|
{
|
||||||
Utils.SaveLog(ex.Message, ex);
|
Utils.SaveLog(ex.Message, ex);
|
||||||
Error?.Invoke(this, new ErrorEventArgs(ex));
|
Error?.Invoke(this, new ErrorEventArgs(ex));
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
{
|
||||||
|
Error?.Invoke(this, new ErrorEventArgs(ex.InnerException));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -239,13 +252,35 @@ namespace v2rayN.Handler
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var httpPort = LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp);
|
var httpPort = LazyConfig.Instance.GetConfig().GetLocalPort(Global.InboundHttp);
|
||||||
var webProxy = new WebProxy(Global.Loopback, httpPort);
|
if (!SocketCheck(Global.Loopback, httpPort))
|
||||||
if (RunAvailabilityCheck(webProxy) > 0)
|
|
||||||
{
|
{
|
||||||
return webProxy;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return new WebProxy(Global.Loopback, httpPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool SocketCheck(string ip, int port)
|
||||||
|
{
|
||||||
|
Socket sock = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
IPAddress ipa = IPAddress.Parse(ip);
|
||||||
|
IPEndPoint point = new IPEndPoint(ipa, port);
|
||||||
|
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||||
|
sock.Connect(point);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (sock != null)
|
||||||
|
{
|
||||||
|
sock.Close();
|
||||||
|
sock.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue