From e7cc0279ab9a11319de521dfdf25057d1ff7ab7f Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Fri, 22 Sep 2017 21:57:50 -0400 Subject: Have sequence analysis properly use filters from taps. Sequence analysis has its own "filtering" system that required its tap functions to look for some "filter flags". register_tap_listener() already comes with a filter argument, so use that to simplify logic of tap functions in dissectors. Also have Qt GUI for Flow Graph look like other dialogs that have a "Limit to display filter" checkbox. Change-Id: I91d9d9599309786892f5b50c98692e52651e7174 Reviewed-on: https://code.wireshark.org/review/23659 Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- ui/qt/sequence_dialog.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'ui/qt/sequence_dialog.cpp') diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp index 4842c0ed93..57d55cb220 100644 --- a/ui/qt/sequence_dialog.cpp +++ b/ui/qt/sequence_dialog.cpp @@ -90,7 +90,6 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i if (!info_) { info_ = new SequenceInfo(sequence_analysis_info_new()); info_->sainfo()->name = "any"; - info_->sainfo()->all_packets = TRUE; } else { info_->ref(); sequence_analysis_free_nodes(info_->sainfo()); @@ -159,7 +158,6 @@ SequenceDialog::SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *i ctx_menu_.addAction(ui->actionGoToNextPacket); ctx_menu_.addAction(ui->actionGoToPreviousPacket); - ui->showComboBox->setCurrentIndex(0); ui->addressComboBox->setCurrentIndex(0); sequence_items_t item_data; @@ -434,7 +432,11 @@ void SequenceDialog::fillDiagram() register_analysis_t* analysis = sequence_analysis_find_by_name(info_->sainfo()->name); if (analysis != NULL) { - register_tap_listener(sequence_analysis_get_tap_listener_name(analysis), info_->sainfo(), NULL, sequence_analysis_get_tap_flags(analysis), + const char *filter = NULL; + if (ui->displayFilterCheckBox->checkState() == Qt::Checked) + filter = cap_file_.capFile()->dfilter; + + register_tap_listener(sequence_analysis_get_tap_listener_name(analysis), info_->sainfo(), filter, sequence_analysis_get_tap_flags(analysis), NULL, sequence_analysis_get_packet_func(analysis), NULL); cf_retap_packets(cap_file_.capFile()); @@ -603,15 +605,8 @@ void SequenceDialog::goToAdjacentPacket(bool next) } } -void SequenceDialog::on_showComboBox_activated(int index) +void SequenceDialog::on_displayFilterCheckBox_toggled(bool) { - if (!info_->sainfo()) return; - - if (index == 0) { - info_->sainfo()->all_packets = TRUE; - } else { - info_->sainfo()->all_packets = FALSE; - } fillDiagram(); } -- cgit v1.2.3