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/inbound.js3
-rw-r--r--web/assets/js/model/outbound.js3
-rw-r--r--web/html/form/outbound.html16
-rw-r--r--web/html/form/stream/stream_finalmask.html16
4 files changed, 28 insertions, 10 deletions
diff --git a/web/assets/js/model/inbound.js b/web/assets/js/model/inbound.js
index d4df6d36..5d167ead 100644
--- a/web/assets/js/model/inbound.js
+++ b/web/assets/js/model/inbound.js
@@ -1073,8 +1073,9 @@ class UdpMask extends XrayCommonClass {
case 'mkcp-aes128gcm':
return { password: settings.password || '' };
case 'header-dns':
- case 'xdns':
return { domain: settings.domain || '' };
+ case 'xdns':
+ return { domains: Array.isArray(settings.domains) ? settings.domains : [] };
case 'xicmp':
return { ip: settings.ip || '', id: settings.id ?? 0 };
case 'mkcp-original':
diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js
index c0808c1d..9a26a954 100644
--- a/web/assets/js/model/outbound.js
+++ b/web/assets/js/model/outbound.js
@@ -573,8 +573,9 @@ class UdpMask extends CommonClass {
case 'mkcp-aes128gcm':
return { password: settings.password || '' };
case 'header-dns':
- case 'xdns':
return { domain: settings.domain || '' };
+ case 'xdns':
+ return { resolvers: Array.isArray(settings.resolvers) ? settings.resolvers : [] };
case 'xicmp':
return { ip: settings.ip || '', id: settings.id ?? 0 };
case 'mkcp-original':
diff --git a/web/html/form/outbound.html b/web/html/form/outbound.html
index f4cb6467..7bac266f 100644
--- a/web/html/form/outbound.html
+++ b/web/html/form/outbound.html
@@ -886,15 +886,23 @@
placeholder="Obfuscation password"
></a-input>
</a-form-item>
- <a-form-item
- label="Domain"
- v-if="['header-dns', 'xdns'].includes(mask.type)"
- >
+ <a-form-item label="Domain" v-if="mask.type === 'header-dns'">
<a-input
v-model.trim="mask.settings.domain"
placeholder="e.g., www.example.com"
></a-input>
</a-form-item>
+ <template v-if="mask.type === 'xdns'">
+ <a-form-item label="Resolvers">
+ <a-select
+ mode="tags"
+ v-model="mask.settings.resolvers"
+ :style="{ width: '100%' }"
+ :token-separators="[',']"
+ placeholder="e.g., xxx+udp://8.8.8.8:53"
+ ></a-select>
+ </a-form-item>
+ </template>
<template v-if="mask.type === 'header-custom'">
<a-form-item label="Client">
<a-icon
diff --git a/web/html/form/stream/stream_finalmask.html b/web/html/form/stream/stream_finalmask.html
index b61813ee..64bf2c06 100644
--- a/web/html/form/stream/stream_finalmask.html
+++ b/web/html/form/stream/stream_finalmask.html
@@ -81,15 +81,23 @@
placeholder="Obfuscation password"
></a-input>
</a-form-item>
- <a-form-item
- label="Domain"
- v-if="['header-dns', 'xdns'].includes(mask.type)"
- >
+ <a-form-item label="Domain" v-if="mask.type === 'header-dns'">
<a-input
v-model.trim="mask.settings.domain"
placeholder="e.g., www.example.com"
></a-input>
</a-form-item>
+ <template v-if="mask.type === 'xdns'">
+ <a-form-item label="Domains">
+ <a-select
+ mode="tags"
+ v-model="mask.settings.domains"
+ :style="{ width: '100%' }"
+ :token-separators="[',']"
+ placeholder="e.g., www.example.com"
+ ></a-select>
+ </a-form-item>
+ </template>
<template v-if="mask.type === 'header-custom'">
<a-form-item label="Client">
<a-icon