summaryrefslogtreecommitdiff
path: root/ui/tap-sequence-analysis.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/tap-sequence-analysis.c')
-rw-r--r--ui/tap-sequence-analysis.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/ui/tap-sequence-analysis.c b/ui/tap-sequence-analysis.c
index abaf6f19b1..a30ee53eda 100644
--- a/ui/tap-sequence-analysis.c
+++ b/ui/tap-sequence-analysis.c
@@ -256,8 +256,6 @@ sequence_analysis_list_get(capture_file *cf, seq_analysis_info_t *sainfo)
case SEQ_ANALYSIS_VOIP:
default:
return;
- break;
-
}
cf_retap_packets(cf);
@@ -278,6 +276,31 @@ static void sequence_analysis_item_free(gpointer data)
g_free(data);
}
+
+/* compare two list entries by packet no */
+static gint
+sequence_analysis_sort_compare(gconstpointer a, gconstpointer b, gpointer user_data _U_)
+{
+ const seq_analysis_item_t *entry_a = (const seq_analysis_item_t *)a;
+ const seq_analysis_item_t *entry_b = (const seq_analysis_item_t *)b;
+
+ if(entry_a->fd->num < entry_b->fd->num)
+ return -1;
+
+ if(entry_a->fd->num > entry_b->fd->num)
+ return 1;
+
+ return 0;
+}
+
+
+void
+sequence_analysis_list_sort(seq_analysis_info_t *sainfo)
+{
+ if (!sainfo) return;
+ g_queue_sort(sainfo->items, sequence_analysis_sort_compare, NULL);
+}
+
void
sequence_analysis_list_free(seq_analysis_info_t *sainfo)
{
@@ -380,7 +403,7 @@ static void overwrite (GString *gstr, char *text_to_insert, guint32 p1, guint32
* and Return -2 if the array is full
*/
/****************************************************************************/
-static gint add_or_get_node(seq_analysis_info_t *sainfo, address *node) {
+static guint add_or_get_node(seq_analysis_info_t *sainfo, address *node) {
guint i;
if (node->type == AT_NONE) return NODE_OVERFLOW;
@@ -409,8 +432,8 @@ static void sequence_analysis_get_nodes_item_proc(gpointer data, gpointer user_d
struct sainfo_counter *sc = (struct sainfo_counter *)user_data;
if (gai->display) {
(sc->num_items)++;
- gai->src_node = (guint16)add_or_get_node(sc->sainfo, &(gai->src_addr));
- gai->dst_node = (guint16)add_or_get_node(sc->sainfo, &(gai->dst_addr));
+ gai->src_node = add_or_get_node(sc->sainfo, &(gai->src_addr));
+ gai->dst_node = add_or_get_node(sc->sainfo, &(gai->dst_addr));
}
}