aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Zawadzki <darkjames-ws@darkjames.pl>2017-09-19 18:51:36 +0200
committerMichael Mann <mmann78@netscape.net>2017-09-19 21:32:07 +0000
commit0d869dae1e17804b79142565e1c938339446b81e (patch)
tree837c818123c8e23f4e35bc4f82eb689d17b65306
parent4930772178a779d57d694b71b5786ff4ca792c3c (diff)
Sequence (flow) analysis: fill timestamp when creating item.
Change-Id: Ie1b82d016b632162a91e2ed54a964662bc25e9d5 Reviewed-on: https://code.wireshark.org/review/23620 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/sequence_analysis.c7
-rw-r--r--epan/sequence_analysis.h2
-rw-r--r--sharkd_session.c10
-rw-r--r--ui/tap-sequence-analysis.c12
4 files changed, 9 insertions, 22 deletions
diff --git a/epan/sequence_analysis.c b/epan/sequence_analysis.c
index e829f48746..0cb4183c8f 100644
--- a/epan/sequence_analysis.c
+++ b/epan/sequence_analysis.c
@@ -110,6 +110,7 @@ void sequence_analysis_table_iterate_tables(wmem_foreach_func func, gpointer use
seq_analysis_item_t* sequence_analysis_create_sai_with_addresses(packet_info *pinfo, seq_analysis_info_t *sainfo)
{
seq_analysis_item_t *sai = NULL;
+ char time_str[COL_MAX_LEN];
if (sainfo->any_addr) {
if (pinfo->net_src.type!=AT_NONE && pinfo->net_dst.type!=AT_NONE) {
@@ -126,6 +127,12 @@ seq_analysis_item_t* sequence_analysis_create_sai_with_addresses(packet_info *pi
}
}
+ if (sai) {
+ /* Fill in the timestamps */
+ set_fd_time(pinfo->epan, pinfo->fd, time_str);
+ sai->time_str = g_strdup(time_str);
+ }
+
return sai;
}
diff --git a/epan/sequence_analysis.h b/epan/sequence_analysis.h
index 247b3d5fbd..d4f5d61122 100644
--- a/epan/sequence_analysis.h
+++ b/epan/sequence_analysis.h
@@ -128,7 +128,7 @@ WS_DLL_PUBLIC tap_packet_cb sequence_analysis_get_packet_func(register_analysis_
WS_DLL_PUBLIC guint sequence_analysis_get_tap_flags(register_analysis_t* analysis);
/** Helper function to create a sequence analysis item with address fields populated
- * Allocate a seq_analysis_item_t to return and populate the src_addr and dst_addr
+ * Allocate a seq_analysis_item_t to return and populate the time_str and src_addr and dst_addr
* members based on seq_analysis_info_t any_addr member
*
* @param pinfo packet info
diff --git a/sharkd_session.c b/sharkd_session.c
index 2413fb6405..121a459a5f 100644
--- a/sharkd_session.c
+++ b/sharkd_session.c
@@ -1011,7 +1011,6 @@ sharkd_session_free_tap_expert_cb(void *tapdata)
* (m) t - frame time string
* (m) n - array of two numbers with source node index and destination node index
* (m) pn - array of two numbers with source and destination port
- * (o) p - protocol
* (o) c - comment
*/
static void
@@ -1021,7 +1020,6 @@ sharkd_session_process_tap_flow_cb(void *tapdata)
GList *flow_list;
guint i;
- char time_str[COL_MAX_LEN];
const char *sepa = "";
sequence_analysis_get_nodes(graph_analysis);
@@ -1048,7 +1046,6 @@ sharkd_session_process_tap_flow_cb(void *tapdata)
while (flow_list)
{
seq_analysis_item_t *sai = (seq_analysis_item_t *) flow_list->data;
- frame_data *fdata;
flow_list = g_list_next(flow_list);
@@ -1057,12 +1054,7 @@ sharkd_session_process_tap_flow_cb(void *tapdata)
printf("%s{", sepa);
- fdata = frame_data_sequence_find(cfile.frames, sai->frame_number);
-
- /* XXX, sequence_analysis_item_set_timestamp not called, do it manually */
- set_fd_time(cfile.epan, fdata, time_str);
- printf("\"t\":\"%s\"", time_str);
-
+ printf("\"t\":\"%s\"", sai->time_str);
printf(",\"n\":[%u,%u]", sai->src_node, sai->dst_node);
printf(",\"pn\":[%u,%u]", sai->port_src, sai->port_dst);
diff --git a/ui/tap-sequence-analysis.c b/ui/tap-sequence-analysis.c
index 2ec1fc8333..6e24d64432 100644
--- a/ui/tap-sequence-analysis.c
+++ b/ui/tap-sequence-analysis.c
@@ -44,16 +44,6 @@
#define CONV_TIME_HEADER_LENGTH 16
#define TIME_HEADER_LENGTH 10
-static void sequence_analysis_item_set_timestamp(gpointer data, gpointer user_data)
-{
- gchar time_str[COL_MAX_LEN];
- seq_analysis_item_t *seq_item = (seq_analysis_item_t *)data;
- const capture_file *cf = (const capture_file *)user_data;
- frame_data *fd = frame_data_sequence_find(cf->frames, seq_item->frame_number);
- set_fd_time(cf->epan, fd, time_str);
- seq_item->time_str = g_strdup(time_str);
-}
-
void
sequence_analysis_list_get(capture_file *cf, seq_analysis_info_t *sainfo)
{
@@ -73,8 +63,6 @@ sequence_analysis_list_get(capture_file *cf, seq_analysis_info_t *sainfo)
remove_tap_listener(sainfo);
/* SEQ_ANALYSIS_DEBUG("%d items", g_queue_get_length(sainfo->items)); */
- /* Fill in the timestamps */
- g_queue_foreach(sainfo->items, sequence_analysis_item_set_timestamp, cf);
}
/****************************************************************************/