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();