|
|
|
@ -19,7 +19,7 @@ namespace v2rayN.Handler
|
|
|
|
|
{ |
|
|
|
|
if (_statePort is null) |
|
|
|
|
{ |
|
|
|
|
_statePort = Utile.GetFreePort(); |
|
|
|
|
_statePort = Utile.GetFreePort(GetLocalPort(Global.InboundAPITagName)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return _statePort.Value; |
|
|
|
@ -52,32 +52,18 @@ namespace v2rayN.Handler
|
|
|
|
|
|
|
|
|
|
public int GetLocalPort(string protocol) |
|
|
|
|
{ |
|
|
|
|
int localPort = _config.inbound.FirstOrDefault(t => t.protocol == Global.InboundSocks).localPort; |
|
|
|
|
if (protocol == Global.InboundSocks) |
|
|
|
|
{ |
|
|
|
|
return localPort; |
|
|
|
|
} |
|
|
|
|
else if (protocol == Global.InboundHttp) |
|
|
|
|
{ |
|
|
|
|
return localPort + 1; |
|
|
|
|
} |
|
|
|
|
else if (protocol == Global.InboundSocks2) |
|
|
|
|
{ |
|
|
|
|
return localPort + 2; |
|
|
|
|
} |
|
|
|
|
else if (protocol == Global.InboundHttp2) |
|
|
|
|
{ |
|
|
|
|
return localPort + 3; |
|
|
|
|
} |
|
|
|
|
else if (protocol == ESysProxyType.Pac.ToString()) |
|
|
|
|
{ |
|
|
|
|
return localPort + 4; |
|
|
|
|
} |
|
|
|
|
else if (protocol == "speedtest") |
|
|
|
|
{ |
|
|
|
|
return localPort + 103; |
|
|
|
|
} |
|
|
|
|
return localPort; |
|
|
|
|
var localPort = _config.inbound.FirstOrDefault(t => t.protocol == Global.InboundSocks)?.localPort ?? 10808; |
|
|
|
|
return protocol.ToLower() switch |
|
|
|
|
{ |
|
|
|
|
Global.InboundSocks => localPort, |
|
|
|
|
Global.InboundHttp => localPort + 1, |
|
|
|
|
Global.InboundSocks2 => localPort + 2, |
|
|
|
|
Global.InboundHttp2 => localPort + 3, |
|
|
|
|
"pac" => localPort + 4, |
|
|
|
|
Global.InboundAPITagName => localPort + 11, |
|
|
|
|
"speedtest" => localPort + 21, |
|
|
|
|
_ => localPort, |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void AddProcess(IntPtr processHandle) |
|
|
|
|