aboutsummaryrefslogtreecommitdiffstats
path: root/reassemble.h
AgeCommit message (Collapse)AuthorFilesLines
2002-04-17Add a separate hash table to the reassembly code for reassembledGuy Harris1-3/+38
packets, using the reassembly ID and the frame number of the final frame as the key. There is no guarantee that reassembly IDs won't be reused, even when talking between the same source and destination address; if, once reassembly is complete, the "fragment_data" structure is moved to the latter hash table, this will keep reused reassembly IDs from causing mis-reassembly. Add a routine "fragment_add_seq_check()", which if a fragment has the "more fragments" flag not set but is the first fragment of a reassembly, treats that as a non-fragmented frame, allocating a "fragment_data" structure for the reassembly but not attaching any fragment to it, and adding it to a reassembled packet list; if a packet has been reassembled, removes it from the table of reassemblies and moves it to the table of reassembled packets; if the frame's been seen already, looks it up in the table of reassembled packets rather than the table of reassemblies. Add reassembly support for fragmented 802.11 frames. Use "fragment_add_seq_check()" to cope with the fact that some hardware+drivers apparently hands us reassembled frames with a non-zero fragment number and the "more fragments" bit clear (as if it puts the 802.11 header of the *last* fragment onto the reassembled data). svn path=/trunk/; revision=5177
2002-04-17Rename the "frag_offset" argument of "fragment_add_seq()" toGuy Harris1-4/+4
"frag_number", to make it clearer that it's not a byte offset but a sequence number. svn path=/trunk/; revision=5175
2002-02-03From Ricardo Barroetave�a: support dissectors that are handedGuy Harris1-1/+17
reassembled TCP data being able to indicate that they need still more reassembly, so that, for example, a dissector can indicate that it needs reassembly in order to dissect a header that says how long the PDU is and, when that reassembly is done and it dissects the header, it can then indicate that it needs more reassembly to get the entire PDU. svn path=/trunk/; revision=4694
2001-12-15From Ronnie Sahlberg: new infrastructure to reassemble packets whereGuy Harris1-1/+15
fragments are identified by block sequence numbers and not byte offsets. svn path=/trunk/; revision=4398
2001-11-24Assorted changes from Ronnie Sahlberg:Guy Harris1-1/+27
Add a few small functions to reassemble.c to cope with protocols where the total length of defragmented PDUs are specified in the first fragment (all previous uses of reassembly has been for PDUs where the last fragment is signalled by a flag in the header for the last fragment). Add a few small functions to reassemble.c to abort-and-delete defragmentation of PDUs and also detect IF a PDU is currently being defragmented. (Useful for PDUs where the "unique" identifier is rather ununique, or may be reused often enough so it can be a problem for Ethereal.) Change where NT Cancel presents its Cancelation-to output, and makes the three trans secondary requests also output similar information. svn path=/trunk/; revision=4255
2001-06-08Move the fragment reassembly code into "reassemble.c" andGuy Harris1-0/+77
"reassemble.h", and remove IPv4 dependencies from it. Use it for OSI CLNP segment reassembly as well. svn path=/trunk/; revision=3525