Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/assets/js/model/outbound.js30
1 files changed, 16 insertions, 14 deletions
diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js
index c3008e18..708728a8 100644
--- a/web/assets/js/model/outbound.js
+++ b/web/assets/js/model/outbound.js
@@ -645,7 +645,7 @@ class Outbound extends CommonClass {
json.path,
json.type ? json.type : 'none');
} else if (network === 'grpc') {
- stream.grpc = new GrpcStreamSettings(json.path, json.type == 'multi');
+ stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi');
} else if (network === 'httpupgrade') {
stream.httpupgrade = new HttpUpgradeStreamSettings(json.path,json.host);
}
@@ -658,20 +658,22 @@ class Outbound extends CommonClass {
json.allowInsecure);
}
- return new Outbound(json.ps, Protocols.VMess, new Outbound.VmessSettings(json.add, json.port, json.id), stream);
+ const port = json.port * 1;
+
+ return new Outbound(json.ps, Protocols.VMess, new Outbound.VmessSettings(json.add, port, json.id), stream);
}
static fromParamLink(link){
const url = new URL(link);
- let type = url.searchParams.get('type');
+ let type = url.searchParams.get('type') ?? 'tcp';
let security = url.searchParams.get('security') ?? 'none';
let stream = new StreamSettings(type, security);
- let headerType = url.searchParams.get('headerType');
- let host = url.searchParams.get('host');
- let path = url.searchParams.get('path');
+ let headerType = url.searchParams.get('headerType') ?? undefined;
+ let host = url.searchParams.get('host') ?? undefined;
+ let path = url.searchParams.get('path') ?? undefined;
- if (type === 'tcp') {
+ if (type === 'tcp' || type === 'none') {
stream.tcp = new TcpStreamSettings(headerType ?? 'none', host, path);
} else if (type === 'kcp') {
stream.kcp = new KcpStreamSettings();
@@ -686,9 +688,12 @@ class Outbound extends CommonClass {
url.searchParams.get('quicSecurity') ?? 'none',
url.searchParams.get('key') ?? '',
headerType ?? 'none');
- } else if (type === 'grpc') {
- stream.grpc = new GrpcStreamSettings(url.searchParams.get('serviceName') ?? '', url.searchParams.get('mode') == 'multi');
- } else if (type === 'httpupgrade') {
+ } else if (type === 'grpc') {
+ stream.grpc = new GrpcStreamSettings(
+ url.searchParams.get('serviceName') ?? '',
+ url.searchParams.get('authority') ?? '',
+ url.searchParams.get('mode') == 'multi');
+ } else if (type === 'httpupgrade') {
stream.httpupgrade = new HttpUpgradeStreamSettings(path,host);
}
@@ -709,10 +714,7 @@ class Outbound extends CommonClass {
stream.reality = new RealityStreamSettings(pbk, fp, sni, sid, spx);
}
- let data = link.split('?');
- if(data.length != 2) return null;
-
- const regex = /([^@]+):\/\/([^@]+)@(.+):(\d+)\?(.*)$/;
+ const regex = /([^@]+):\/\/([^@]+)@(.+):(\d+)(.*)$/;
const match = link.match(regex);
if (!match) return null;