aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/sctp_assoc_analyse_dialog.cpp
diff options
context:
space:
mode:
authorIrene RĂ¼ngeler <I.Ruengeler@fh-muenster.de>2013-12-18 13:49:10 +0000
committerIrene RĂ¼ngeler <I.Ruengeler@fh-muenster.de>2013-12-18 13:49:10 +0000
commit4729c083ac6ae7456584cbf726c1023b8707b72b (patch)
treeb935c703603a123bcffd92bc4b63faae9295ee1e /ui/qt/sctp_assoc_analyse_dialog.cpp
parent485faca86dd9976763bf58b341dac2c53f1c3120 (diff)
Add 'Filter Association' to context menu in packet list.
svn path=/trunk/; revision=54219
Diffstat (limited to 'ui/qt/sctp_assoc_analyse_dialog.cpp')
-rw-r--r--ui/qt/sctp_assoc_analyse_dialog.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/ui/qt/sctp_assoc_analyse_dialog.cpp b/ui/qt/sctp_assoc_analyse_dialog.cpp
index 7c633e80ef..630c679d84 100644
--- a/ui/qt/sctp_assoc_analyse_dialog.cpp
+++ b/ui/qt/sctp_assoc_analyse_dialog.cpp
@@ -44,7 +44,7 @@ SCTPAssocAnalyseDialog::SCTPAssocAnalyseDialog(QWidget *parent, sctp_assoc_info_
}
/* (redissect all packets) */
cf_retap_packets(cap_file_);
- findAssocForPacket();
+ selected_assoc = findAssocForPacket(cap_file_);
}
this->setWindowTitle(QString(tr("SCTP Analyse Association: %1 Port1 %2 Port2 %3")).arg(cf_get_display_name(cap_file_)).arg(selected_assoc->port1).arg(selected_assoc->port2));
fillTabs();
@@ -55,14 +55,19 @@ SCTPAssocAnalyseDialog::~SCTPAssocAnalyseDialog()
delete ui;
}
-void SCTPAssocAnalyseDialog::findAssocForPacket()
+sctp_assoc_info_t* SCTPAssocAnalyseDialog::findAssocForPacket(capture_file* cf)
{
frame_data *fdata;
GList *list, *framelist;
sctp_assoc_info_t *assoc;
bool frame_found = false;
- fdata = cap_file_->current_frame;
+ fdata = cf->current_frame;
+ if (sctp_stat_get_info()->is_registered == FALSE) {
+ register_tap_listener_sctp_stat();
+ /* (redissect all packets) */
+ cf_retap_packets(cf);
+ }
list = g_list_first(sctp_stat_get_info()->assoc_info_list);
while (list) {
@@ -79,8 +84,7 @@ void SCTPAssocAnalyseDialog::findAssocForPacket()
framelist = g_list_next(framelist);
}
if (frame_found) {
- selected_assoc = assoc;
- return;
+ return assoc;
} else {
list = g_list_next(list);
}
@@ -91,6 +95,7 @@ void SCTPAssocAnalyseDialog::findAssocForPacket()
msgBox.setText(tr("No Association found for this packet."));
msgBox.exec();
}
+ return NULL;
}
void SCTPAssocAnalyseDialog::fillTabs()
@@ -244,7 +249,7 @@ void SCTPAssocAnalyseDialog::on_chunkStatisticsButton_clicked()
if (caller_ && !selected_assoc) {
selected_assoc = caller_->findSelectedAssoc();
} else if (!caller_ && !selected_assoc) {
- findAssocForPacket();
+ selected_assoc = findAssocForPacket(cap_file_);
}
SCTPChunkStatisticsDialog *sctp_dialog = new SCTPChunkStatisticsDialog(this, selected_assoc, cap_file_);