VoIP: fix in prepare filter for VOIP calls

Make sure that the filter for VoIP calls includes RTP streams when calling
Prepare filter.

Bug: 13440
Change-Id: Ia55073151817b88b3fa6a3fd30f98fdf683621a4
Reviewed-on: https://code.wireshark.org/review/27955
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Erika Szelleova 2018-06-02 14:43:40 +02:00 committed by Anders Broman
parent 78ae936d6b
commit 555067724a
1 changed files with 7 additions and 3 deletions

View File

@ -241,9 +241,9 @@ void VoipCallsDialog::prepareFilter()
QString filter_str;
QSet<guint16> selected_calls;
QString frame_numbers;
/* Build a new filter based on frame numbers */
const char *or_prepend = "";
foreach (QModelIndex index, ui->callTreeView->selectionModel()->selectedIndexes()) {
voip_calls_info_t *call_info = VoipCallsInfoModel::indexToCallInfo(index);
if (!call_info) {
@ -256,12 +256,16 @@ void VoipCallsDialog::prepareFilter()
while (cur_ga_item && cur_ga_item->data) {
seq_analysis_item_t *ga_item = (seq_analysis_item_t*) cur_ga_item->data;
if (selected_calls.contains(ga_item->conv_num)) {
filter_str += QString("%1frame.number == %2").arg(or_prepend).arg(ga_item->frame_number);
or_prepend = " or ";
frame_numbers += QString("%1 ").arg(ga_item->frame_number);
}
cur_ga_item = g_list_next(cur_ga_item);
}
if (!frame_numbers.isEmpty()) {
frame_numbers.chop(1);
filter_str = QString("frame.number in {%1} or rtp.setup-frame in {%1}").arg(frame_numbers);
}
#if 0
// XXX The GTK+ UI falls back to building a filter based on protocols if the filter
// length is too long. Leaving this here for the time being in case we need to do