Initial refactor of nettrace reader (#17009)
Old behaviour is to read the entire file into memory at once; provide the XML tree as the first packet; and then individual `<msg>` elements as subsequent packets. It did this by writing to a temporary pcapng file. This change causes the XML file to only be read a chunk at a time (and be read directly, not through an intermediate pcapng). This means much larger files can be loaded, at the cost of no longer showing the raw XML as the first packet. This is not a loss because the file can be loaded in MIME Files Format (or a text editor) to see the XML. Much of the logic from the old functions `create_temp_pcapng_file()` and `write_packet_data()` has been relocated into the new function `nettrace_msg_to_packet()`, and is used to directly generate packet data for wiretap instead of writing it to a temporary file. Also includes some initial "code smell" fixes: - Removed some duplicate `#define`s from epan/exported_pdu.h - Replaces some magic numbers with macros from epan/exported_pdu.h - Replaces other magic numbers with the CLEN() macro to make it easier to see (and debug) where sizes/offsets come from - Use `g_strstr_len()` instead of `strstr()` to remove the need to insert string terminators - Uses direct pointer math instead of indexing into a byte array This compiles and runs, and seems to produce the same results as the old reader (except for the XML packet). Consider it a proof of concept; it needs further revision before being review-ready.
This commit is contained in:
parent
84eeeabde9
commit
718cff5264