In the case where the byte length is -1 (NULL value), we need to ensure the metadata offset is progressing:
skipping the (irrelevant) offset of the type fields.
In the case where the byte length is 0, we also need to ensure the offset progresses in a similar manner.
This fixes parsing of a RESULT message which has both cases in it and now it is being parsed correctly.
Signed-off-by: Yaniv Kaul <yaniv.kaul@scylladb.com>
Bit ordering used in the Wi-SUN specification diagrams differ from the
one used in RFCs:
Wi-SUN FAN 1.1v06 - 6.3.2.1.1 Bit Order of Transmissions
Each frame is described as a specific sequence of fields depicted
in the order in which they are transmitted by the PHY, from left to
right, where the leftmost bit MUST be transmitted first in time.
Bits within each field are numbered from 0 (leftmost and least
significant) to k – 1 (rightmost and most significant), where the
length of the field is k bits.
The first condition was only true if the second condition was also true.
Change the arithmetic to what is presumably intended - if half
PROGBAR_SHOW_DELAY has passed and we are less than half done, show
the progress bar.
Note that since this only gets checked between records, there's still
an issue with frames that take a very long time to dissect, e.g. the
first TLS packet if the SSLKEYLOGFILE is very large (#17051.)
The progress bar won't appear (nor any other GUI indication) while
that packet is being dissected.
Update the header to reflect the current practice and try to
modernize the terminology a bit. Drop ancient and obsolete
references to ethers(5) and "well-known MAC addresses"
(that are not included here).
lintian changed its hint forma to a new "pointed hint" format
with filenames in square brackets, invalidating our overrides
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1007002
Try to eliminate the resultant mismatch-override warnings.
Use wtap_free_idb_info() to clean up the idb_inf member, rather than
duplicating what wtap_free_idb_info() does.
Don't call wtap_block_array_free() on the shb_hdrs member and then call
wtap_dump_params_cleanup() on the entire structure - that causes a
double-free of the SHB headers.
In text2pcap.c, have a routine that calls wtap_free_idb_info() and then
calls wtap_dump_params_cleanup(), and replace that sequence of calls
with calls to the routine.
Fixes#19235.
Don't just call get_tcp_conversation_data in the HTTP dissector,
because HTTP is not necessarily over TCP, and that ends up creating
extra TCP streams and conversation data in such cases (e.g., SSDP
over UDP, or HTTP over SCTP, also some proxied connections.)
Instead, just determine the direction the same way that the TCP
dissector does using addresses and ports, because that's all that's
being used here.
Add back the websocket.payload.text field, always displaying the
unmasked payload, so that the entire payload string can be filtered
or added to the info column.
Fix#19220
Last time this value-string was edited in 959a290961, and before
this commit there was only one value (all other values resevred):
case 0x01: str = "According to ITU-T Rec. Q.920 and ITU-T Rec. Q.930";
case 0x02: str = "Reserved: was allocated in earlier phases of the protocol";
case 0x03: str = "Reserved: was allocated in earlier phases of the protocol";
case 0x04: str = "Reserved: was allocated in earlier phases of the protocol";
case 0x05: str = "Reserved: was allocated in earlier phases of the protocol";
case 0x06: str = "Reserved: was allocated in earlier phases of the protocol";
default: str = "Reserved";
This matches the definition of the "Signalling access protocol (octet 5)"
in recent version (17.8.0, 2022-10) of 3GPP TS 24.008. However, the
above-mentioned commit replaced the switch statement with a value-string
conforming neither 3GPP TS 24.008, nor the earlier GSM 04.08.
Let's revert back to the correct description, and additionally take
a chance to specify the old meaning of reserved values (from GSM 04.08).
Handling telnet options by their "tn_opt" structure pointer allows for
elimination of some duplicated logic and will make it easier to add support for
Telnet options which are not consecutively numbered. Unknown options are
handled through a special tn_opt just for that purpose. Behavior should be
unchanged.
While we're here, constify the option table.
The reassemble_streaming_data_and_call_subdissector() of 'epan/reassemble.c'
is originated from the mechanism of HTTP/2 streaming reassembly and have
some enhancements. Making HTTP/2 to use this common helper function is beneficial
for resolving common streaming reassembly issues encountered in the future.
Add '-2' in test/suite_dissection.py because some reassembly issues may
happen in second pass.