mirror of
https://github.com/2dust/v2rayN.git
synced 2026-11-07 04:55:00 +03:00
Add MASQUE support (#10233)
* Add MASQUE support * Add SettingsCoreType
This commit is contained in:
@@ -77,7 +77,7 @@ public partial class CoreConfigSingboxService
|
||||
}
|
||||
}
|
||||
|
||||
if (_node.ConfigType == EConfigType.WireGuard)
|
||||
if (_node.ConfigType is EConfigType.WireGuard or EConfigType.MASQUE)
|
||||
{
|
||||
var endpoint = JsonUtils.Deserialize<Endpoints4Sbox>(txtOutbound);
|
||||
FillEndpoint(endpoint);
|
||||
@@ -350,13 +350,13 @@ public partial class CoreConfigSingboxService
|
||||
{
|
||||
var protocolExtra = _node.GetProtocolExtra();
|
||||
|
||||
endpoint.address = Utils.String2List(protocolExtra.WgInterfaceAddress)?.Select(s => s.Trim()).ToList() ?? ["172.16.0.2/32"];
|
||||
endpoint.type = Global.ProtocolTypes[_node.ConfigType];
|
||||
|
||||
switch (_node.ConfigType)
|
||||
{
|
||||
case EConfigType.WireGuard:
|
||||
{
|
||||
endpoint.address = Utils.String2List(protocolExtra.WgInterfaceAddress)?.Select(s => s.Trim()).ToList() ?? ["172.16.0.2/32"];
|
||||
var peer = new Peer4Sbox
|
||||
{
|
||||
public_key = protocolExtra.WgPublicKey ?? string.Empty,
|
||||
@@ -371,6 +371,28 @@ public partial class CoreConfigSingboxService
|
||||
endpoint.peers = [peer];
|
||||
break;
|
||||
}
|
||||
case EConfigType.MASQUE:
|
||||
{
|
||||
endpoint.type = "masque-client";
|
||||
endpoint.server = _node.Address;
|
||||
endpoint.server_port = _node.Port;
|
||||
endpoint.username = _node.Username;
|
||||
endpoint.password = _node.Password;
|
||||
endpoint.path = protocolExtra?.MasquePath.NullIfEmpty();
|
||||
if (!string.IsNullOrEmpty(protocolExtra?.MasqueHeaders))
|
||||
{
|
||||
var headers = Utils.ParseHeaders(protocolExtra.MasqueHeaders)
|
||||
.GroupBy(x => x.Item1, StringComparer.OrdinalIgnoreCase)
|
||||
.ToDictionary(
|
||||
g => g.Key,
|
||||
g => g.Select(x => x.Item2).ToList(),
|
||||
StringComparer.OrdinalIgnoreCase
|
||||
);
|
||||
endpoint.headers = headers.Count > 0 ? headers : null;
|
||||
}
|
||||
FillOutboundTls(endpoint);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -402,7 +424,7 @@ public partial class CoreConfigSingboxService
|
||||
}
|
||||
}
|
||||
|
||||
private void FillOutboundTls(Outbound4Sbox outbound)
|
||||
private void FillOutboundTls(BaseServer4Sbox server)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -476,7 +498,7 @@ public partial class CoreConfigSingboxService
|
||||
{
|
||||
tls.ech = ech;
|
||||
}
|
||||
outbound.tls = tls;
|
||||
server.tls = tls;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user