1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-04 02:24:12 +02:00

fix tempentities for protocol version 23

This commit is contained in:
Robin Appelman 2021-07-23 17:20:04 +02:00
commit 3055242fd9
10 changed files with 85 additions and 65 deletions

View file

@ -133,12 +133,16 @@ impl<'a> Parse<'a> for CreateStringTableMessage<'a> {
}
impl<'a> ParseBitSkip<'a> for CreateStringTableMessage<'a> {
fn parse_skip(stream: &mut Stream<'a>) -> Result<()> {
fn parse_skip(stream: &mut Stream<'a>, state: &ParserState) -> Result<()> {
let _: String = stream.read()?;
let max_entries: u16 = stream.read()?;
let encode_bits = log_base2(max_entries);
let _: u16 = stream.read_sized(encode_bits as usize + 1)?;
let length = read_var_int(stream)?;
let length = if state.protocol_version > 23 {
read_var_int(stream)?
} else {
stream.read_sized(20)?
};
let _: Option<FixedUserDataSize> = stream.read()?;
@ -263,7 +267,7 @@ impl<'a> Parse<'a> for UpdateStringTableMessage<'a> {
}
impl<'a> ParseBitSkip<'a> for UpdateStringTableMessage<'a> {
fn parse_skip(stream: &mut Stream<'a>) -> Result<()> {
fn parse_skip(stream: &mut Stream<'a>, _state: &ParserState) -> Result<()> {
let _: u8 = stream.read_sized(5)?;
let _: u16 = if stream.read()? { stream.read()? } else { 1 };