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:
authorShishkevich D. <135337715+shishkevichd@users.noreply.github.com>2025-03-09 07:28:12 +0300
committerGitHub <noreply@github.com>2025-03-09 07:28:12 +0300
commitc49ec9a74cf1c407cbe872355f1e2ac03a8e3080 (patch)
treed1945e4821b7682a2fd171b5fadf106d2f920f9e
parenta0dd101d9778f11dfe4866e7bc71c5119bcbf6fa (diff)
chore: add new grpc params for outbound (#2744)
-rw-r--r--web/assets/js/model/inbound.js6
-rw-r--r--web/assets/js/model/outbound.js30
-rw-r--r--web/html/xui/form/outbound.html15
-rw-r--r--web/html/xui/form/stream/stream_grpc.html7
4 files changed, 45 insertions, 13 deletions
diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js
index 5c3235e1..d08553d9 100644
--- a/web/assets/js/model/inbound.js
+++ b/web/assets/js/model/inbound.js
@@ -420,20 +420,17 @@ class WsStreamSettings extends XrayCommonClass {
class GrpcStreamSettings extends XrayCommonClass {
constructor(
serviceName = "",
- authority = "",
- multiMode = false,
+ authority = ""
) {
super();
this.serviceName = serviceName;
this.authority = authority;
- this.multiMode = multiMode;
}
static fromJson(json = {}) {
return new GrpcStreamSettings(
json.serviceName,
json.authority,
- json.multiMode
);
}
@@ -441,7 +438,6 @@ class GrpcStreamSettings extends XrayCommonClass {
return {
serviceName: this.serviceName,
authority: this.authority,
- multiMode: this.multiMode,
}
}
}
diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js
index 0103b1e8..38c7ce73 100644
--- a/web/assets/js/model/outbound.js
+++ b/web/assets/js/model/outbound.js
@@ -251,23 +251,47 @@ class GrpcStreamSettings extends CommonClass {
constructor(
serviceName = "",
authority = "",
- multiMode = false
+ multiMode = false,
+ userAgent = "",
+ idleTimeout = 60,
+ healthCheckTimeout = 20,
+ permitWithoutStream = false,
+ initialWindowsSize = 0
) {
super();
this.serviceName = serviceName;
this.authority = authority;
this.multiMode = multiMode;
+ this.user_agent = userAgent;
+ this.idle_timeout = idleTimeout;
+ this.health_check_timeout = healthCheckTimeout;
+ this.permit_without_stream = permitWithoutStream;
+ this.initial_windows_size = initialWindowsSize;
}
static fromJson(json = {}) {
- return new GrpcStreamSettings(json.serviceName, json.authority, json.multiMode);
+ return new GrpcStreamSettings(
+ json.serviceName,
+ json.authority,
+ json.multiMode,
+ json.user_agent,
+ json.idle_timeout,
+ json.health_check_timeout,
+ json.permit_without_stream,
+ json.initial_windows_size
+ );
}
toJson() {
return {
serviceName: this.serviceName,
authority: this.authority,
- multiMode: this.multiMode
+ multiMode: this.multiMode,
+ user_agent: this.user_agent,
+ idle_timeout: this.idle_timeout,
+ health_check_timeout: this.health_check_timeout,
+ permit_without_stream: this.permit_without_stream,
+ initial_windows_size: this.initial_windows_size
}
}
}
diff --git a/web/html/xui/form/outbound.html b/web/html/xui/form/outbound.html
index d4e9e5f6..93b0a94f 100644
--- a/web/html/xui/form/outbound.html
+++ b/web/html/xui/form/outbound.html
@@ -352,6 +352,21 @@
<a-form-item label='Multi Mode'>
<a-switch v-model="outbound.stream.grpc.multiMode"></a-switch>
</a-form-item>
+ <a-form-item label="User Agent">
+ <a-input v-model.trim="outbound.stream.grpc.user_agent"></a-input>
+ </a-form-item>
+ <a-form-item label="Idle Timeout">
+ <a-input-number v-model.number="outbound.stream.grpc.idle_timeout"></a-input-number>
+ </a-form-item>
+ <a-form-item label="Health Check Timeout">
+ <a-input-number v-model.number="outbound.stream.grpc.health_check_timeout"></a-input-number>
+ </a-form-item>
+ <a-form-item label="Permit Without Stream">
+ <a-switch v-model="outbound.stream.grpc.permit_without_stream"></a-switch>
+ </a-form-item>
+ <a-form-item label="Initial Window Size">
+ <a-input-number v-model.number="outbound.stream.grpc.initial_windows_size"></a-input-number>
+ </a-form-item>
</template>
<!-- httpupgrade -->
diff --git a/web/html/xui/form/stream/stream_grpc.html b/web/html/xui/form/stream/stream_grpc.html
index e74a3c3f..a036080f 100644
--- a/web/html/xui/form/stream/stream_grpc.html
+++ b/web/html/xui/form/stream/stream_grpc.html
@@ -1,13 +1,10 @@
{{define "form/streamGRPC"}}
<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
- <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 label="Service Name">
+ <a-input v-model.trim="inbound.stream.grpc.serviceName"></a-input>
</a-form-item>
</a-form>
{{end}}