diff --git a/fmt/Bean2CoreObj_box.cpp b/fmt/Bean2CoreObj_box.cpp
index 4f6203b..8c563c6 100644
--- a/fmt/Bean2CoreObj_box.cpp
+++ b/fmt/Bean2CoreObj_box.cpp
@@ -70,12 +70,8 @@ namespace NekoGui_fmt {
outbound->insert("tls", tls);
}
- if (!packet_encoding.isEmpty()) {
- auto pkt = packet_encoding;
- if (pkt == "packet") pkt = "packetaddr";
- outbound->insert("packet_encoding", pkt);
- } else if (outbound->value("type").toString() == "vless") {
- outbound->insert("packet_encoding", "");
+ if (outbound->value("type").toString() == "vmess" || outbound->value("type").toString() == "vless") {
+ outbound->insert("packet_encoding", packet_encoding);
}
}
diff --git a/sub/GroupUpdater.cpp b/sub/GroupUpdater.cpp
index 5d71e2f..d0efba1 100644
--- a/sub/GroupUpdater.cpp
+++ b/sub/GroupUpdater.cpp
@@ -270,11 +270,11 @@ namespace NekoGui_sub {
if (type == "vless") {
bean->flow = Node2QString(proxy["flow"]);
bean->password = Node2QString(proxy["uuid"]);
- // meta vless xudp
- auto xudp = proxy["xudp"];
- if (xudp.IsDefined() && !xudp.IsNull() && Node2Bool(xudp) == false) {
- bean->stream->packet_encoding = "";
+ // meta packet encoding
+ if (Node2Bool(proxy["packet-addr"])) {
+ bean->stream->packet_encoding = "packetaddr";
} else {
+ // For VLESS, default to use xudp
bean->stream->packet_encoding = "xudp";
}
} else {
@@ -323,6 +323,10 @@ namespace NekoGui_sub {
if (Node2Bool(proxy["tls"])) bean->stream->security = "tls";
if (Node2Bool(proxy["skip-cert-verify"])) bean->stream->allow_insecure = true;
+ // meta packet encoding
+ if (Node2Bool(proxy["xudp"])) bean->stream->packet_encoding = "xudp";
+ if (Node2Bool(proxy["packet-addr"])) bean->stream->packet_encoding = "packetaddr";
+
// opts
auto ws = NodeChild(proxy, {"ws-opts", "ws-opt"});
if (ws.IsMap()) {
diff --git a/ui/edit/dialog_edit_profile.ui b/ui/edit/dialog_edit_profile.ui
index 8e19b24..d4e1005 100644
--- a/ui/edit/dialog_edit_profile.ui
+++ b/ui/edit/dialog_edit_profile.ui
@@ -271,7 +271,7 @@
-
- packet
+ packetaddr
-