Commit Graph

138 Commits

Author SHA1 Message Date
Jaap Keuter a6f9c55480 From Chris A:
Right now with DESEGMENT_UNTIL_FIN, the TCP dissector doesn't display the
fragment tree (the "Reassembled TCP segments" with links to the frames that
were reassembled).

Attached is one possible patch to packet-tcp.c to display the fragment tree.
Because DESEGMENT_UNTIL_FIN dissects the FIN packet as the high-level PDU, the
fragment tree also contains the FIN packet. It has 0 bytes of PDU data. Ugly but logical..

svn path=/trunk/; revision=28090
2009-04-20 05:48:04 +00:00
Gerald Combs 446d43351c Add initial support for string buffers - ep_allocated, growable strings
similar to GLib's GStrings. Use them to create the list of TCP flags.

svn path=/trunk/; revision=27872
2009-03-27 23:05:37 +00:00
Bill Meier d6a5a7c761 P64 changes: Fix some cases for which size_t is not required
svn path=/trunk/; revision=27822
2009-03-22 20:55:31 +00:00
Gerald Combs 6d04f793f0 Back out r27047 and r27053.
svn path=/trunk/; revision=27062
2008-12-19 17:39:52 +00:00
Gerald Combs fc71188963 Update calls to proto_tree_add_bytes_format to reflect r27047.
svn path=/trunk/; revision=27053
2008-12-18 20:19:49 +00:00
Bill Meier 33c99f44fd Fix typos and spelling (mostly in text strings)
svn path=/trunk/; revision=27028
2008-12-17 00:08:38 +00:00
Gerald Combs 6f659679f7 Make sure all of our struct members are initialized.
svn path=/trunk/; revision=26948
2008-12-09 17:50:02 +00:00
Stig Bjørlykke 9936884558 The stream index does not belong to the source and destination port bytes.
Do not let the generated TCP Analysis Flags get all TCP bytes.
Point the hidden TCP Segment Len to the header length byte.

svn path=/trunk/; revision=26806
2008-11-18 16:38:08 +00:00
Stig Bjørlykke 30991af2f1 From Didier Gautheron (bug 3032):
Use se_alloc0 rather then se_alloc for tcp_acked allocation.

svn path=/trunk/; revision=26685
2008-11-04 08:31:23 +00:00
Stephen Fisher 0feefaf9a0 Fix minor typo in comment field
svn path=/trunk/; revision=26671
2008-11-02 00:48:41 +00:00
Jaap Keuter aba73d539f Add option 22 and 23 dissection.
svn path=/trunk/; revision=26463
2008-10-15 17:51:57 +00:00
Sake Blok a550fb9d78 Make the index from the conversation-struct available as field
"tcp.stream", this will make it possible to sort packets by
tcp stream, filter tcp streams exactly, etc.

It is also the preparation for a fix for bug 1447


svn path=/trunk/; revision=26305
2008-09-30 12:24:27 +00:00
Ronnie Sahlberg ed83f835e6 add a preference and code for tracking how many un-acked bytes are in
flight on a tcp connection.

this is quite useful toghether with io-grapgs to track how much of the 
tcp window that an application actually uses



svn path=/trunk/; revision=26067
2008-08-25 02:15:36 +00:00
Jaap Keuter 90af2cb097 Lint reports addressed.
Whitespace cleanup.

svn path=/trunk/; revision=26046
2008-08-20 05:56:31 +00:00
Jaap Keuter fd86b5d61a From Eric Travis:
The included tweak allows for the filtering of packets on the presence of
TCP Option 20: tcp.options.scps;

svn path=/trunk/; revision=26045
2008-08-20 05:42:35 +00:00
Jaap Keuter d24ee65df8 From Steve Friedman:
s/Acknowledgment/Acknowledgement/

svn path=/trunk/; revision=26044
2008-08-20 05:40:25 +00:00
Jaap Keuter 3f9ad89606 Updates based on lint output provided by Chris Maynard.
svn path=/trunk/; revision=26010
2008-08-13 21:44:53 +00:00
Stig Bjørlykke 675db70a1b Rewrote to avoid prohibited API strcpy.
svn path=/trunk/; revision=26006
2008-08-13 15:23:15 +00:00
Anders Broman 9aa1b43f9c From Eric Travis:
Enhancement providing parsing capability for TCP Options 20 & 21 (IANA assigned).

svn path=/trunk/; revision=25991
2008-08-12 21:08:46 +00:00
Anders Broman 832a507988 From Gerhard Olsson :
tcp_dissect_pdus will not req one_more_segm when tvb<fixed_len

svn path=/trunk/; revision=25869
2008-07-30 12:23:18 +00:00
Tomas Kukosa edbcca785f Fix TCP desegmentation when minimal header spans multiple segments.
svn path=/trunk/; revision=25814
2008-07-24 06:33:23 +00:00
Anders Broman 8a1e393ce4 Fix some of the Errors/warnings detected by checkapi.
svn path=/trunk/; revision=25337
2008-05-21 06:10:27 +00:00
Bill Meier b42aec2948 Fix some of the Errors/warnings detected by checkapi.
svn path=/trunk/; revision=25308
2008-05-15 13:22:06 +00:00
Bill Meier 9ca142b160 Fix some of the Errors/warnings detected by checkapi.
svn path=/trunk/; revision=25282
2008-05-13 01:23:37 +00:00
Ulf Lamping d07c77577f reduce the expert level of TCP zero window back to "reasonable values" - for me.
maybe this will start the first edit war in Wireshark ;-)

As discussed on the dev-list, we might need some sort of profile for the expert output as well ...

for this TCP window stuff - and problably a lot of other stuff - the severity of an expert message will largely depend on your network usage and configuration

svn path=/trunk/; revision=24803
2008-04-06 16:34:37 +00:00
Sake Blok 7b909cf305 Raise the expert priority of all "zero window" related events from
note to error, as a window size of 0 indicates serious problems 
in the tcp session.

svn path=/trunk/; revision=24797
2008-04-05 20:18:28 +00:00
Sake Blok 1f763deeda Fix for bug 2378, where window scaling was not applied to
a new conversation. The new conversation was created from
a template conversation with NO_PORT2 set. In this case
the tcp conversation data structure was not initialized
and therefor the scaling options could not be saved in the 
conversation.


svn path=/trunk/; revision=24796
2008-04-05 20:01:09 +00:00
Ulf Lamping bbd56edef7 lower the "Window Update" severity from note to chat (as it happens all the time)
svn path=/trunk/; revision=24794
2008-04-05 17:27:29 +00:00
Ulf Lamping ee7e528117 as discussed on SharkFest: switch off checksum checks by default
svn path=/trunk/; revision=24778
2008-04-05 00:15:29 +00:00
Guy Harris f004da7b19 Fix a comment to reflect two possible reasons for a bogus PDU length.
svn path=/trunk/; revision=23953
2007-12-27 21:06:47 +00:00
Stephen Fisher d00059d2bc From metatech:
New dissector for RTMP(T) protocol

via bug #2078


svn path=/trunk/; revision=23902
2007-12-17 20:43:38 +00:00
Sake Blok 8f7d4aff96 Fixes the "follow tcp stream" output when there are frames missing in the
capture file that were actually on the wire. The reassembly code waited for 
the gaps to be filled in by retransmissions, which would never come.

With this fix all acknowledged data will be output with "[xxx bytes missing in 
capture file]" inserted in every gap.


svn path=/trunk/; revision=23878
2007-12-15 23:25:05 +00:00
Stig Bjørlykke 6341d80f07 From Graham Bloice:
Show correct TCP segment data (and length) when multiple pdus.

svn path=/trunk/; revision=23572
2007-11-24 23:04:49 +00:00
Gerald Combs 544ca516b5 Add more TCP analysis struct checks.
svn path=/trunk/; revision=23396
2007-11-08 00:58:38 +00:00
Gerald Combs 5753ea42ce Fix some null dereferences.
svn path=/trunk/; revision=23313
2007-10-30 22:22:14 +00:00
Sake Blok 81b41ba967 This patch is a remake of SVN 22762:
When doing TCP_SEQ analysis, if the packet is a SYN, then it's 
not a lost packet but the tcp ports are being reused. This is often 
seen in load-balanced environments where client ports are preserved 
on the server-side.

This time it is fixed by creating a new conversation whenever a
new SYN is received for an existing conversation. This fixes the
following:

- bug 1680: Error in TCP Sequence number analysis
- TCP-conversation timestamps for new TCP-sessions with the addresses 
  and ports as a previous TCP-conversation in the trace-file.


svn path=/trunk/; revision=23299
2007-10-28 23:38:43 +00:00
Anders Broman 1950ffc214 Apply the small performance enhancment patches for:
- if offset is 0, tvb_length is the same as tvb_length_remaining, just faster.
Replace 
- col_append_fstr() with faster  col_append_str() 
- col_add_str() with col_set_str()
when it's safe

svn path=/trunk/; revision=23252
2007-10-23 05:50:00 +00:00
Sake Blok 7b5113c2a4 Fix for bug 1542:
When a SYN/ACK is missing in the capture, the base_seq used in 
relative sequence numbers was not set correctly. I made the
setting of fwd->base_seq and rev->base_seq a little more solid.


svn path=/trunk/; revision=23213
2007-10-17 07:14:56 +00:00
Sake Blok a592e6412c This patch adds two new column types:
- COL_REL_CONV_TIME which is used to display the time relative to the first frame that was seen in the conversation
- COL_DELTA_CONV_TIME which is used to display the delta time from the previous frame of the conversation

It also adds the function "col_set_time()" to "epan/column-utils.[ch]" which can be called from within a dissector to set either of these two columns to the appropiate time.

Last but not least, it lets the tcp-dissector make use of these two columns.


svn path=/trunk/; revision=23058
2007-10-03 14:02:08 +00:00
Sake Blok 7edd24e5af This patch adds two new fields to the tcp-dissector:
tcp.time_relative ==> the time that has elapsed since the 
   first packet that was seen in the current TCP stream

tcp.time_delta ==> the time that has elapsed since the 
   last packet that was seen in the current TCP stream

Calculating these timestamps is turned off by default to not 
use the extra memory that is needed for the per-packet-data.
It can be turned on through the TCP protocol preferences


svn path=/trunk/; revision=22966
2007-09-25 20:37:13 +00:00
Stig Bjørlykke cf976e5df2 Always show real window size in the Info column for SYN packets.
Added window size for non-ack packets (was removed in r16884).

svn path=/trunk/; revision=22881
2007-09-16 13:18:18 +00:00
Sake Blok 2ef69333db When doing TCP_SEQ analysis, if the packet is a SYN, then it's
not a lost packet but the tcp ports are being reused. This is often 
seen in load-balanced environments where client ports are preserved 
on the server-side.

We only want to report port reusage once, so the SYN/ACK is excluded 
from TCP_SEQ analysis.

svn path=/trunk/; revision=22762
2007-08-31 15:06:27 +00:00
Jeff Morriss 3f2a49f17c When detecting fast retransmissions or out of order packets, use a 64-bit variable to store the time delta (instead of a 32-bit one). We're counting nanoseconds here, so this allows us to accurately detect differences greater than 4.294 seconds.
svn path=/trunk/; revision=22609
2007-08-23 21:38:15 +00:00
Richard van der Hoff 62569354fe From yin sun <sunyin51@gmail.com> / bug 1722:
When a subdissector on top of TCP set ... DESEGMENT_UNTIL_FIN ... then
the subdissector should receive the whole reassembled TCP stream in tvb.
But the bug is it is missing the last payload from the FIN packet.


svn path=/trunk/; revision=22578
2007-08-21 22:15:17 +00:00
Ronnie Sahlberg 654b6075af bug 1550
add a fix for ack/seq tracking when the tcp is broken and sends a 
non-zero ack field for SYN packets.

add a warning to the dissect pane that illustrates that these are broken 
packets
 


svn path=/trunk/; revision=22267
2007-07-07 22:27:22 +00:00
Michael Tüxen cc8ed4a3c4 From Michael Scharf: Add support for TCP Quickstart.
svn path=/trunk/; revision=22041
2007-06-04 23:27:12 +00:00
Jeff Morriss 00cf2ec89c Frame numbers are unsigned, print them as such
svn path=/trunk/; revision=21443
2007-04-16 04:52:51 +00:00
Tomas Kukosa 155b04eda3 export some desegmentation functions from TCP dissector to reuse them in SSL/TLS desegmentation
svn path=/trunk/; revision=21346
2007-04-06 07:01:01 +00:00
Sebastien Tandel 1382c71a43 First step of TCP dissector refactoring.
I have a dream today.
I have a dream that one day the TCP dissector shall become human-readable. :)

svn path=/trunk/; revision=21297
2007-04-01 16:04:04 +00:00
Sebastien Tandel 3af0bc1b22 From Sake Blok :
Fix for Bug 1136 (TCP Checksum Validation)

TCP cksum 0xffff should not appear in TCP headers. RFC 1624 explains that it
can be generated by a (not-so-good) algorithm for incremental updates to the
tcp-checksum.
New behavior of wireshark when having cksum == 0xffff :
  - use "Checksum: 0xffff [should be 0x0000 (See RFC 1624)]" in the
    packet-detail pane
  - set tcp.checksum_good to FALSE (just like checksum-offload packets)
  - set tcp.checksum_bad to FALSE (just like checksum-offload packets)
  - Generate an expert warning: "TCP Checksum 0xffff instead of 0x0000 (See RFC 1624)"
  - add "[TCP CHECKSUM 0xFFFF]" instead of "[TCP CHECKSUM BAD]" to COL_INFO

svn path=/trunk/; revision=21295
2007-04-01 15:42:08 +00:00