From bdd166f4a76e0990ad08027e541c3db24f7ca273 Mon Sep 17 00:00:00 2001 From: Jiri Novak Date: Wed, 14 Dec 2016 19:37:04 +0100 Subject: VoIP Calls/Flow Sequence: Fix of showing nodes from previous call When VoIP Calls/Flow Sequence generates list of nodes to show (nodes above flow), it do not clear the list from last call. As consequence of it, when second call is between hosts than first call, you see nodes which are not involved in call. Change-Id: I80f9acb09e6aa71b3a32bb6eacaeb5b4bb13b332 Reviewed-on: https://code.wireshark.org/review/19267 Petri-Dish: Anders Broman Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- ui/qt/sequence_dialog.cpp | 1 + ui/tap-sequence-analysis.c | 20 ++++++++++++++------ ui/tap-sequence-analysis.h | 6 ++++++ 3 files changed, 21 insertions(+), 6 deletions(-) (limited to 'ui') diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp index 268125889e..a1d6868465 100644 --- a/ui/qt/sequence_dialog.cpp +++ b/ui/qt/sequence_dialog.cpp @@ -85,6 +85,7 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i info_->sainfo()->all_packets = TRUE; } else { info_->ref(); + sequence_analysis_free_nodes(info_->sainfo()); num_items_ = sequence_analysis_get_nodes(info_->sainfo()); } diff --git a/ui/tap-sequence-analysis.c b/ui/tap-sequence-analysis.c index d93385154b..eda3b049f8 100644 --- a/ui/tap-sequence-analysis.c +++ b/ui/tap-sequence-analysis.c @@ -339,8 +339,6 @@ sequence_analysis_list_sort(seq_analysis_info_t *sainfo) void sequence_analysis_list_free(seq_analysis_info_t *sainfo) { - int i; - if (!sainfo) return; /* SEQ_ANALYSIS_DEBUG("%d items", g_queue_get_length(sainfo->items)); */ @@ -366,10 +364,7 @@ sequence_analysis_list_free(seq_analysis_info_t *sainfo) } sainfo->nconv = 0; - for (i=0; inodes[i]); - } - sainfo->num_nodes = 0; + sequence_analysis_free_nodes(sainfo); } /****************************************************************************/ @@ -483,6 +478,19 @@ sequence_analysis_get_nodes(seq_analysis_info_t *sainfo) return sc.num_items; } +/* Free the node address list */ +/****************************************************************************/ +void +sequence_analysis_free_nodes(seq_analysis_info_t *sainfo) +{ + int i; + + for (i=0; inodes[i]); + } + sainfo->num_nodes = 0; +} + /****************************************************************************/ gboolean sequence_analysis_dump_to_file(const char *pathname, seq_analysis_info_t *sainfo, capture_file *cf, unsigned int first_node) diff --git a/ui/tap-sequence-analysis.h b/ui/tap-sequence-analysis.h index fff6a46257..39b09839f2 100644 --- a/ui/tap-sequence-analysis.h +++ b/ui/tap-sequence-analysis.h @@ -123,6 +123,12 @@ void sequence_analysis_list_free(seq_analysis_info_t *sainfo); */ int sequence_analysis_get_nodes(seq_analysis_info_t *sainfo); +/** Free the node address list + * + * @param sainfo Sequence analysis information. + */ +void sequence_analysis_free_nodes(seq_analysis_info_t *sainfo); + /** Write an ASCII version of the sequence diagram to a file. * * @param pathname Pathname of the file to write. -- cgit v1.2.1