mirror of
https://codeberg.org/demostf/parser.git
synced 2026-10-01 08:44:05 +02:00
DemoHandler::default() starts out at protocol 24 and relies on handle_header to replace that with whatever the demo actually is. Parsing through DemoParser does this for you, but reencode drives the handler itself and never did, so every demo got read as protocol 24. Older protocols put a few fields at different widths, so the message stream desyncs partway in. RawPacketStream reports that as a truncated demo rather than an error, which is why nothing complains about it: reencode_demo on test_data/protocol23.dem writes 1076 bytes, prints a truncation warning and still exits 0. The reencode test missed this because protocol23.dem was never in its list, and because nothing checked the demo had been read to the end. Add a test for that and the same assert to the existing round trip. Output for protocol 24 demos is unchanged, byte for byte. |
||
|---|---|---|
| .. | ||
| snapshots | ||
| entity.rs | ||
| message_reencode.rs | ||
| reencode.rs | ||
| sendprops.rs | ||
| stringtable.rs | ||
| tests.rs | ||