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 <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Jiri Novak 2016-12-14 19:37:04 +01:00 committed by Anders Broman
parent 9090afbfe9
commit bdd166f4a7
3 changed files with 21 additions and 6 deletions

View File

@ -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());
}

View File

@ -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; i<MAX_NUM_NODES; i++) {
free_address(&sainfo->nodes[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; i<MAX_NUM_NODES; i++) {
free_address(&sainfo->nodes[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)

View File

@ -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.