diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js index 8944157b..0103b1e8 100644 --- a/web/assets/js/model/outbound.js +++ b/web/assets/js/model/outbound.js @@ -86,6 +86,16 @@ const MODE_OPTION = { STREAM_ONE: "stream-one", }; +const Address_Port_Strategy = { + NONE: "none", + SrvPortOnly: "srvportonly", + SrvAddressOnly: "srvaddressonly", + SrvPortAndAddress: "srvportandaddress", + TxtPortOnly: "txtportonly", + TxtAddressOnly: "txtaddressonly", + TxtPortAndAddress: "txtportandaddress" +}; + Object.freeze(Protocols); Object.freeze(SSMethods); Object.freeze(TLS_FLOW_CONTROL); @@ -95,7 +105,7 @@ Object.freeze(OutboundDomainStrategies); Object.freeze(WireguardDomainStrategy); Object.freeze(USERS_SECURITY); Object.freeze(MODE_OPTION); - +Object.freeze(Address_Port_Strategy); class CommonClass { @@ -412,7 +422,8 @@ class SockoptStreamSettings extends CommonClass { tcpFastOpen = false, tcpKeepAliveInterval = 0, tcpMptcp = false, - penetrate = false + penetrate = false, + addressPortStrategy = Address_Port_Strategy.NONE, ) { super(); this.dialerProxy = dialerProxy; @@ -420,6 +431,7 @@ class SockoptStreamSettings extends CommonClass { this.tcpKeepAliveInterval = tcpKeepAliveInterval; this.tcpMptcp = tcpMptcp; this.penetrate = penetrate; + this.addressPortStrategy = addressPortStrategy; } static fromJson(json = {}) { @@ -430,6 +442,7 @@ class SockoptStreamSettings extends CommonClass { json.tcpKeepAliveInterval, json.tcpMptcp, json.penetrate, + json.addressPortStrategy ); } @@ -440,6 +453,7 @@ class SockoptStreamSettings extends CommonClass { tcpKeepAliveInterval: this.tcpKeepAliveInterval, tcpMptcp: this.tcpMptcp, penetrate: this.penetrate, + addressPortStrategy: this.addressPortStrategy }; } } diff --git a/web/html/xui/form/outbound.html b/web/html/xui/form/outbound.html index 8abef4aa..1cea3ce7 100644 --- a/web/html/xui/form/outbound.html +++ b/web/html/xui/form/outbound.html @@ -465,12 +465,17 @@ [[ tag ]] - - + + + [[ key ]] + + + +