diff options
author | Michael Mann <mmann78@netscape.net> | 2016-10-18 20:34:37 -0400 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2016-11-10 20:48:18 +0000 |
commit | 66fa31415ff8d520c71dc66718599e941ed05c29 (patch) | |
tree | 4ecb47b8faabeea22471682e85771410ec6e5d5e /epan/follow.h | |
parent | b489b7ff7d4ba9f000f29c608515eb43059855ab (diff) | |
download | wireshark-66fa31415ff8d520c71dc66718599e941ed05c29.tar.gz |
tcp: Fix Follow TCP tap data and when its tapped.
Use the model from the 2.0 branch and earlier that only "tapped" the
follow data in a single location. This fixes duplicate data for
reassembled data and handles out-of-order packets.
Bug: 12855
Change-Id: I5268f13e3c08e9271acf026b859de693ad794c94
Reviewed-on: https://code.wireshark.org/review/18368
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/follow.h')
-rw-r--r-- | epan/follow.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/epan/follow.h b/epan/follow.h index 00d26fc763..9101b32e2d 100644 --- a/epan/follow.h +++ b/epan/follow.h @@ -88,6 +88,7 @@ typedef frs_return_t (*follow_read_stream_func)(struct _follow_info *follow_info typedef struct { gboolean is_server; guint32 packet_num; + guint32 seq; /* TCP only */ GByteArray *data; } follow_record_t; @@ -96,6 +97,8 @@ typedef struct _follow_info { char *filter_out_filter; GList *payload; guint bytes_written[2]; /* Index with FROM_CLIENT or FROM_SERVER for readability. */ + guint32 seq[2]; /* TCP only */ + GList *fragments[2]; /* TCP only */ guint client_port; guint server_port; address client_ip; @@ -201,6 +204,13 @@ WS_DLL_PUBLIC gchar* follow_get_stat_tap_string(register_follow_t* follower); */ WS_DLL_PUBLIC void follow_reset_stream(follow_info_t* info); +/** Free follow_info_t structure + * Free everything except the GUI element + * + * @param follow_info [in] follower info + */ +WS_DLL_PUBLIC void follow_info_free(follow_info_t* follow_info); + #ifdef __cplusplus } #endif /* __cplusplus */ |