From dd2a2d432a0c1e7ca5b0fe56da8624619f23e35d Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Fri, 21 Aug 2015 09:45:48 -0700 Subject: Multicast and wireless lan statistics fixups. Make sure "-z multicast,stat[,filter]" and "-z wlan,stat[,filter]" work. Add some missing "-z" items to the man page. Try to fix some MSVC++ warnings. Change-Id: Ie18e5355d595e351f000f14d82781dcdf33141c3 Reviewed-on: https://code.wireshark.org/review/10184 Petri-Dish: Gerald Combs Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs --- doc/wireshark.pod.template | 8 ++++++++ ui/qt/main_window_slots.cpp | 6 ++++++ ui/qt/multicast_statistics_dialog.cpp | 9 +++++++-- ui/qt/wlan_statistics_dialog.cpp | 21 +++++++++++++++------ 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/doc/wireshark.pod.template b/doc/wireshark.pod.template index f414d4bf90..f2b00abe36 100644 --- a/doc/wireshark.pod.template +++ b/doc/wireshark.pod.template @@ -705,6 +705,10 @@ SRT statistics for a specific host. Show DHCP (BOOTP) statistics. +=item B<-z> expert + +Show expert information. + =item B<-z> fc,srt[,I] Collect call/reply SRT (Service Response Time) data for FC. Data collected @@ -931,6 +935,10 @@ VoIP Calls. Example: B<-z voip,calls> +=item B<-z> wlan,stat[,] + +Show IEEE 802.11 network and station statistics. + =item --disable-protocol Eproto_nameE Disable dissection of proto_name. diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index 05d0d550e1..cbd4e61aff 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -2572,6 +2572,7 @@ void MainWindow::on_actionSCTPFilterThisAssociation_triggered() } } +// -z wlan,stat void MainWindow::statCommandWlanStatistics(const char *arg, void *) { WlanStatisticsDialog *wlan_stats_dlg = new WlanStatisticsDialog(*this, capture_file_, arg); @@ -2585,6 +2586,7 @@ void MainWindow::on_actionWirelessWlanStatistics_triggered() statCommandWlanStatistics(NULL, NULL); } +// -z expert void MainWindow::statCommandExpertInfo(const char *, void *) { ExpertInfoDialog *expert_dialog = new ExpertInfoDialog(*this, capture_file_); @@ -2653,6 +2655,7 @@ void MainWindow::on_actionStatisticsTcpStreamWindowScaling_triggered() openTcpStreamDialog(GRAPH_WSCALE); } +// -z mcast,stat void MainWindow::statCommandMulticastStatistics(const char *arg, void *) { MulticastStatisticsDialog *mcast_stats_dlg = new MulticastStatisticsDialog(*this, capture_file_, arg); @@ -2798,6 +2801,7 @@ void MainWindow::on_actionStatisticsCollectd_triggered() openStatisticsTreeDialog("collectd"); } +// -z conv,... void MainWindow::statCommandConversations(const char *arg, void *userdata) { ConversationDialog *conv_dialog = new ConversationDialog(*this, capture_file_, GPOINTER_TO_INT(userdata), arg); @@ -2815,6 +2819,7 @@ void MainWindow::on_actionStatisticsConversations_triggered() statCommandConversations(NULL, NULL); } +// -z endpoints,... void MainWindow::statCommandEndpoints(const char *arg, void *userdata) { EndpointDialog *endp_dialog = new EndpointDialog(*this, capture_file_, GPOINTER_TO_INT(userdata), arg); @@ -2857,6 +2862,7 @@ void MainWindow::on_actionStatisticsPacketLengths_triggered() openStatisticsTreeDialog("plen"); } +// -z io,stat void MainWindow::statCommandIOGraph(const char *, void *) { IOGraphDialog *iog_dialog = new IOGraphDialog(*this, capture_file_); diff --git a/ui/qt/multicast_statistics_dialog.cpp b/ui/qt/multicast_statistics_dialog.cpp index c818ce4e3f..dd2f521ddf 100644 --- a/ui/qt/multicast_statistics_dialog.cpp +++ b/ui/qt/multicast_statistics_dialog.cpp @@ -455,8 +455,13 @@ void MulticastStatisticsDialog::captureFileClosing() // Stat command + args static void -multicast_statistics_init(const char *, void*) { - wsApp->emitStatCommandSignal("MulticastStatistics", NULL, NULL); +multicast_statistics_init(const char *args, void*) { + QStringList args_l = QString(args).split(','); + QByteArray filter; + if (args_l.length() > 2) { + filter = QStringList(args_l.mid(2)).join(",").toUtf8(); + } + wsApp->emitStatCommandSignal("MulticastStatistics", filter.constData(), NULL); } static stat_tap_ui multicast_statistics_ui = { diff --git a/ui/qt/wlan_statistics_dialog.cpp b/ui/qt/wlan_statistics_dialog.cpp index 5331b6c335..3855de86fe 100644 --- a/ui/qt/wlan_statistics_dialog.cpp +++ b/ui/qt/wlan_statistics_dialog.cpp @@ -77,10 +77,10 @@ public: setText(col_bssid_, address_to_qstring(&addr_)); } bool isMatch(address *addr) { - return (addresses_equal(&addr_, addr)) == TRUE; + return addresses_equal(&addr_, addr); } void update(wlan_hdr_t *wlan_hdr) { - bool is_sender = addresses_equal(&addr_, &wlan_hdr->src) == TRUE; + bool is_sender = addresses_equal(&addr_, &wlan_hdr->src); // XXX Should we count received probes and auths? This is what the // GTK+ UI does, but it seems odd. @@ -448,7 +448,7 @@ private: void updateBssid(wlan_hdr_t *wlan_hdr) { copy_address(&bssid_, &wlan_hdr->bssid); - is_broadcast_ = is_broadcast_bssid(&bssid_) == TRUE; + is_broadcast_ = is_broadcast_bssid(&bssid_); setText(col_bssid_, address_to_qstring(&bssid_)); } }; @@ -463,7 +463,7 @@ static const QString node_col_4_title_ = QObject::tr("Pkts Sent"); static const QString node_col_5_title_ = QObject::tr("Pkts Received"); static const QString node_col_11_title_ = QObject::tr("Comment"); -WlanStatisticsDialog::WlanStatisticsDialog(QWidget &parent, CaptureFile &cf, const char *) : +WlanStatisticsDialog::WlanStatisticsDialog(QWidget &parent, CaptureFile &cf, const char *filter) : TapParameterDialog(parent, cf, HELP_STATS_WLAN_TRAFFIC_DIALOG) { setWindowSubtitle(tr("Wireless LAN Statistics")); @@ -504,6 +504,10 @@ WlanStatisticsDialog::WlanStatisticsDialog(QWidget &parent, CaptureFile &cf, con addFilterActions(); + if (filter) { + setDisplayFilter(filter); + } + connect(statsTreeWidget(), SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(updateHeaderLabels())); } @@ -644,8 +648,13 @@ void WlanStatisticsDialog::captureFileClosing() // Stat command + args static void -wlan_statistics_init(const char *, void*) { - wsApp->emitStatCommandSignal("WlanStatistics", NULL, NULL); +wlan_statistics_init(const char *args, void*) { + QStringList args_l = QString(args).split(','); + QByteArray filter; + if (args_l.length() > 2) { + filter = QStringList(args_l.mid(2)).join(",").toUtf8(); + } + wsApp->emitStatCommandSignal("WlanStatistics", filter.constData(), NULL); } static stat_tap_ui wlan_statistics_ui = { -- cgit v1.2.3