summaryrefslogtreecommitdiff
path: root/epan/follow.h
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-10-18 20:34:37 -0400
committerPascal Quantin <pascal.quantin@gmail.com>2016-11-10 20:48:18 +0000
commit66fa31415ff8d520c71dc66718599e941ed05c29 (patch)
tree4ecb47b8faabeea22471682e85771410ec6e5d5e /epan/follow.h
parentb489b7ff7d4ba9f000f29c608515eb43059855ab (diff)
downloadwireshark-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.h10
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 */