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:
authorMHSanaei <ho3ein.sanaei@gmail.com>2024-03-11 12:30:00 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2024-03-11 12:30:00 +0300
commit01cd7539f91d3dc77114a9387d5b856bdbbdbeda (patch)
treec8aee9f7bdb7195df73079c88c221e95443c30e5
parent102864525cab2b8dc443dcc8ebf9e72798a79d64 (diff)
New - gRPC Authority
-rw-r--r--sub/subService.go4
-rw-r--r--web/assets/js/model/xray.js8
-rw-r--r--web/html/xui/form/stream/stream_grpc.html3
3 files changed, 15 insertions, 0 deletions
diff --git a/sub/subService.go b/sub/subService.go
index 8aa9b026..97473159 100644
--- a/sub/subService.go
+++ b/sub/subService.go
@@ -213,6 +213,7 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string) string {
case "grpc":
grpc, _ := stream["grpcSettings"].(map[string]interface{})
obj["path"] = grpc["serviceName"].(string)
+ obj["authority"] = grpc["authority"].(string)
if grpc["multiMode"].(bool) {
obj["type"] = "multi"
}
@@ -351,6 +352,7 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string {
case "grpc":
grpc, _ := stream["grpcSettings"].(map[string]interface{})
params["serviceName"] = grpc["serviceName"].(string)
+ params["authority"] = grpc["authority"].(string)
if grpc["multiMode"].(bool) {
params["mode"] = "multi"
}
@@ -571,6 +573,7 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string
case "grpc":
grpc, _ := stream["grpcSettings"].(map[string]interface{})
params["serviceName"] = grpc["serviceName"].(string)
+ params["authority"] = grpc["authority"].(string)
if grpc["multiMode"].(bool) {
params["mode"] = "multi"
}
@@ -792,6 +795,7 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string) st
case "grpc":
grpc, _ := stream["grpcSettings"].(map[string]interface{})
params["serviceName"] = grpc["serviceName"].(string)
+ params["authority"] = grpc["authority"].(string)
if grpc["multiMode"].(bool) {
params["mode"] = "multi"
}
diff --git a/web/assets/js/model/xray.js b/web/assets/js/model/xray.js
index c8a4184c..9d863798 100644
--- a/web/assets/js/model/xray.js
+++ b/web/assets/js/model/xray.js
@@ -446,16 +446,19 @@ class QuicStreamSettings extends XrayCommonClass {
class GrpcStreamSettings extends XrayCommonClass {
constructor(
serviceName="",
+ authority="",
multiMode=false,
) {
super();
this.serviceName = serviceName;
+ this.authority = authority;
this.multiMode = multiMode;
}
static fromJson(json={}) {
return new GrpcStreamSettings(
json.serviceName,
+ json.authority,
json.multiMode
);
}
@@ -463,6 +466,7 @@ class GrpcStreamSettings extends XrayCommonClass {
toJson() {
return {
serviceName: this.serviceName,
+ authority: this.authority,
multiMode: this.multiMode,
}
}
@@ -1240,6 +1244,7 @@ class Inbound extends XrayCommonClass {
obj.path = this.stream.quic.key;
} else if (network === 'grpc') {
obj.path = this.stream.grpc.serviceName;
+ obj.authority = this.stream.grpc.authority;
if (this.stream.grpc.multiMode){
obj.type = 'multi'
}
@@ -1315,6 +1320,7 @@ class Inbound extends XrayCommonClass {
case "grpc":
const grpc = this.stream.grpc;
params.set("serviceName", grpc.serviceName);
+ params.set("authority", grpc.authority);
if(grpc.multiMode){
params.set("mode", "multi");
}
@@ -1434,6 +1440,7 @@ class Inbound extends XrayCommonClass {
case "grpc":
const grpc = this.stream.grpc;
params.set("serviceName", grpc.serviceName);
+ params.set("authority", grpc.authority);
if(grpc.multiMode){
params.set("mode", "multi");
}
@@ -1520,6 +1527,7 @@ class Inbound extends XrayCommonClass {
case "grpc":
const grpc = this.stream.grpc;
params.set("serviceName", grpc.serviceName);
+ params.set("authority", grpc.authority);
if(grpc.multiMode){
params.set("mode", "multi");
}
diff --git a/web/html/xui/form/stream/stream_grpc.html b/web/html/xui/form/stream/stream_grpc.html
index fcefdff9..e74a3c3f 100644
--- a/web/html/xui/form/stream/stream_grpc.html
+++ b/web/html/xui/form/stream/stream_grpc.html
@@ -3,6 +3,9 @@
<a-form-item label="Service Name">
<a-input v-model.trim="inbound.stream.grpc.serviceName"></a-input>
</a-form-item>
+ <a-form-item label="Authority">
+ <a-input v-model.trim="inbound.stream.grpc.authority"></a-input>
+ </a-form-item>
<a-form-item label="Multi Mode">
<a-switch v-model="inbound.stream.grpc.multiMode"></a-switch>
</a-form-item>