diff options
| -rw-r--r-- | web/assets/js/model/inbound.js | 3 | ||||
| -rw-r--r-- | web/assets/js/model/outbound.js | 3 | ||||
| -rw-r--r-- | web/html/form/outbound.html | 16 | ||||
| -rw-r--r-- | web/html/form/stream/stream_finalmask.html | 16 |
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 |
