From b39ac9a8f0eaa35978aad3d31e94aea2fd5c2420 Mon Sep 17 00:00:00 2001 From: armv9 <48624112+arm64v8a@users.noreply.github.com> Date: Tue, 21 Oct 2025 21:58:37 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=80=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC=20grpc=20=E6=95=B0=E6=8D=AE=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sagernet/fmt/v2ray/StandardV2RayBean.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java index b309257..2f32c50 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/v2ray/StandardV2RayBean.java @@ -112,7 +112,7 @@ public abstract class StandardV2RayBean extends AbstractBean { @Override public void serialize(ByteBufferOutput output) { - output.writeInt(3); + output.writeInt(4); super.serialize(output); output.writeString(uuid); output.writeString(encryption); @@ -133,7 +133,8 @@ public abstract class StandardV2RayBean extends AbstractBean { output.writeString(earlyDataHeaderName); break; } - case "http": { + case "http": + case "httpupgrade": { output.writeString(host); output.writeString(path); break; @@ -142,11 +143,6 @@ public abstract class StandardV2RayBean extends AbstractBean { output.writeString(path); break; } - case "httpupgrade": { - output.writeString(host); - output.writeString(path); - - } } output.writeString(security); @@ -194,19 +190,21 @@ public abstract class StandardV2RayBean extends AbstractBean { earlyDataHeaderName = input.readString(); break; } - case "http": { + case "http": + case "httpupgrade": { host = input.readString(); path = input.readString(); break; } case "grpc": { path = input.readString(); + if (version < 4) { + // 解决老版本数据的读取问题 + input.readString(); + input.readString(); + } break; } - case "httpupgrade": { - host = input.readString(); - path = input.readString(); - } } security = input.readString();