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 ]]
+
+
+
+