diff options
author | Michael Mann <mmann78@netscape.net> | 2017-09-21 11:28:26 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-09-21 22:16:09 +0000 |
commit | 620d54b1e3a4fcad1994409013f6a5b2b76913b4 (patch) | |
tree | 57178fbcdd56a4628a359c996c69f4b256a7f848 /ui/qt | |
parent | bd28737d7f0e4cd30f68f16ee94dcc0dfcf33ea3 (diff) |
Complete move of tap-sequence-analysis.c functionality to sequence_analysis.c
Since dissectors are now populating the timestamp of the seq_analysis_item_t
structure within the tap function, don't have the sequence_anaylsis redo it
when writing an ASCII file. This removes the need for the capture_file
parameter and simplifies the logic a bit.
Also just have GUI register the tap itself. It will provide for some more
flexibility in the future.
Change-Id: I55b2f951b977ea70ac9f7eb4929245b0779e5f0e
Reviewed-on: https://code.wireshark.org/review/23650
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'ui/qt')
-rw-r--r-- | ui/qt/sequence_diagram.cpp | 3 | ||||
-rw-r--r-- | ui/qt/sequence_dialog.cpp | 21 | ||||
-rw-r--r-- | ui/qt/sequence_dialog.h | 3 |
3 files changed, 19 insertions, 8 deletions
diff --git a/ui/qt/sequence_diagram.cpp b/ui/qt/sequence_diagram.cpp index 3b20d0b462..a992c36803 100644 --- a/ui/qt/sequence_diagram.cpp +++ b/ui/qt/sequence_diagram.cpp @@ -22,8 +22,7 @@ #include "sequence_diagram.h" #include "epan/addr_resolv.h" - -#include "ui/tap-sequence-analysis.h" +#include "epan/sequence_analysis.h" #include <ui/qt/utils/color_utils.h> #include <ui/qt/utils/qt_ui_utils.h> diff --git a/ui/qt/sequence_dialog.cpp b/ui/qt/sequence_dialog.cpp index 786a73076d..9af0232787 100644 --- a/ui/qt/sequence_dialog.cpp +++ b/ui/qt/sequence_dialog.cpp @@ -34,6 +34,7 @@ #include "sequence_diagram.h" #include "wireshark_application.h" #include <ui/qt/utils/variant_pointer.h> +#include <ui/alert_box.h> #include <QDir> #include <QFileDialog> @@ -399,12 +400,14 @@ void SequenceDialog::on_buttonBox_accepted() } else if (extension.compare(jpeg_filter) == 0) { save_ok = ui->sequencePlot->saveJpg(file_name); } else if (extension.compare(ascii_filter) == 0 && !file_closed_ && info_->sainfo()) { - save_ok = sequence_analysis_dump_to_file(file_name.toUtf8().constData(), info_->sainfo(), cap_file_.capFile(), 0); + save_ok = sequence_analysis_dump_to_file(file_name.toUtf8().constData(), info_->sainfo(), 0); } // else error dialog? if (save_ok) { path = QDir(file_name); wsApp->setLastOpenDir(path.canonicalPath().toUtf8().constData()); + } else { + open_failure_alert_box(file_name.toUtf8().constData(), errno, TRUE); } } } @@ -420,9 +423,19 @@ void SequenceDialog::fillDiagram() } else { seq_diagram_->clearData(); sequence_analysis_list_free(info_->sainfo()); - sequence_analysis_list_get(cap_file_.capFile(), info_->sainfo()); - num_items_ = sequence_analysis_get_nodes(info_->sainfo()); - seq_diagram_->setData(info_->sainfo()); + + 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), + NULL, sequence_analysis_get_packet_func(analysis), NULL); + + cf_retap_packets(cap_file_.capFile()); + remove_tap_listener(info_->sainfo()); + + num_items_ = sequence_analysis_get_nodes(info_->sainfo()); + seq_diagram_->setData(info_->sainfo()); + } } sequence_w_ = one_em_ * 15; // Arbitrary diff --git a/ui/qt/sequence_dialog.h b/ui/qt/sequence_dialog.h index 110e1f948e..c4d8caf5fb 100644 --- a/ui/qt/sequence_dialog.h +++ b/ui/qt/sequence_dialog.h @@ -29,8 +29,7 @@ #include "cfile.h" #include "epan/packet.h" - -#include "ui/tap-sequence-analysis.h" +#include "epan/sequence_analysis.h" #include <ui/qt/widgets/qcustomplot.h> #include "wireshark_dialog.h" |