summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorHadriel Kaplan <hadrielk@yahoo.com>2015-07-20 10:35:06 -0400
committerAnders Broman <a.broman58@gmail.com>2015-08-06 03:32:13 +0000
commit910438b17f3f8b9ca9cfdbb87b3daf49dd7eb9a0 (patch)
treef57b1dd36c4e20cd7b9758476cb862b74cd1a320 /ui
parent1420f3df6376f45157b7f363c6c07da3a9ac6f29 (diff)
downloadwireshark-910438b17f3f8b9ca9cfdbb87b3daf49dd7eb9a0.tar.gz
Pcapng: support Name Resolution Block options
Make pcapng decode options in an NRB during read, and store the comment option, and write it back out as well. Also make it handle plugin handlers for unknown options in received NRB(s). Change-Id: I81863ef8d85cb1c8b5ba6673ba0e562efe77714f Reviewed-on: https://code.wireshark.org/review/9723 Petri-Dish: Hadriel Kaplan <hadrielk@yahoo.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui')
-rw-r--r--ui/gtk/file_import_dlg.c4
-rw-r--r--ui/qt/resolved_addresses_dialog.cpp30
-rw-r--r--ui/qt/resolved_addresses_dialog.h2
-rw-r--r--ui/qt/resolved_addresses_dialog.ui14
-rw-r--r--ui/tap_export_pdu.c4
5 files changed, 52 insertions, 2 deletions
diff --git a/ui/gtk/file_import_dlg.c b/ui/gtk/file_import_dlg.c
index fd7e2f5d8c..06e3a5790b 100644
--- a/ui/gtk/file_import_dlg.c
+++ b/ui/gtk/file_import_dlg.c
@@ -518,7 +518,9 @@ file_import_open(text_import_info_t *info)
g_array_append_val(idb_inf->interface_data, int_data);
- info->wdh = wtap_dump_fdopen_ng(import_file_fd, WTAP_FILE_TYPE_SUBTYPE_PCAPNG, info->encapsulation, info->max_frame_length, FALSE, shb_hdr, idb_inf, &err);
+ info->wdh = wtap_dump_fdopen_ng(import_file_fd, WTAP_FILE_TYPE_SUBTYPE_PCAPNG, info->encapsulation,
+ info->max_frame_length, FALSE,
+ shb_hdr, idb_inf, NULL, &err);
if (info->wdh == NULL) {
open_failure_alert_box(capfile_name, err, TRUE);
fclose(info->import_text_file);
diff --git a/ui/qt/resolved_addresses_dialog.cpp b/ui/qt/resolved_addresses_dialog.cpp
index 43334e2c5b..f9f06a189d 100644
--- a/ui/qt/resolved_addresses_dialog.cpp
+++ b/ui/qt/resolved_addresses_dialog.cpp
@@ -29,6 +29,7 @@
#include "file.h"
#include "epan/addr_resolv.h"
+#include <wiretap/wtap.h>
#include <QMenu>
#include <QPushButton>
@@ -193,6 +194,14 @@ ResolvedAddressesDialog::ResolvedAddressesDialog(QWidget *parent, CaptureFile *c
ui->plainTextEdit->setWordWrapMode(QTextOption::NoWrap);
ui->plainTextEdit->setTabStopWidth(ui->plainTextEdit->fontMetrics().averageCharWidth() * 8);
+ if (capture_file->isValid()) {
+ wtap* wth = capture_file->capFile()->wth;
+ if (wth) {
+ // might return null
+ comment_ = wtap_get_nrb_comment(wth);
+ }
+ }
+
GHashTable *ipv4_hash_table = get_ipv4_hash_table();
if (ipv4_hash_table) {
g_hash_table_foreach(ipv4_hash_table, ipv4_hash_table_resolved_to_qstringlist, &host_addresses_);
@@ -265,6 +274,7 @@ void ResolvedAddressesDialog::fillShowMenu()
show_menu->clear();
show_menu->addAction(ui->actionAddressesHosts);
+ show_menu->addAction(ui->actionComment);
show_menu->addAction(ui->actionIPv4HashTable);
show_menu->addAction(ui->actionIPv6HashTable);
show_menu->addAction(ui->actionPortNames);
@@ -285,6 +295,19 @@ void ResolvedAddressesDialog::fillBlocks()
QString lines;
ui->plainTextEdit->appendPlainText(tr("# Resolved addresses found in %1").arg(file_name_));
+ if (ui->actionComment->isChecked()) {
+ lines = "\n";
+ lines.append(tr("# Comments\n#\n# "));
+ if (!comment_.isEmpty()) {
+ lines.append("\n\n");
+ lines.append(comment_);
+ lines.append("\n");
+ } else {
+ lines.append(no_entries_);
+ }
+ ui->plainTextEdit->appendPlainText(lines);
+ }
+
if (ui->actionAddressesHosts->isChecked()) {
lines = "\n";
lines.append(tr("# Hosts\n#\n# "));
@@ -385,6 +408,11 @@ void ResolvedAddressesDialog::on_actionAddressesHosts_triggered()
fillBlocks();
}
+void ResolvedAddressesDialog::on_actionComment_triggered()
+{
+ fillBlocks();
+}
+
void ResolvedAddressesDialog::on_actionIPv4HashTable_triggered()
{
fillBlocks();
@@ -418,6 +446,7 @@ void ResolvedAddressesDialog::on_actionEthernetWKA_triggered()
void ResolvedAddressesDialog::on_actionShowAll_triggered()
{
ui->actionAddressesHosts->setChecked(true);
+ ui->actionComment->setChecked(true);
ui->actionIPv4HashTable->setChecked(true);
ui->actionIPv6HashTable->setChecked(true);
ui->actionPortNames->setChecked(true);
@@ -431,6 +460,7 @@ void ResolvedAddressesDialog::on_actionShowAll_triggered()
void ResolvedAddressesDialog::on_actionHideAll_triggered()
{
ui->actionAddressesHosts->setChecked(false);
+ ui->actionComment->setChecked(false);
ui->actionIPv4HashTable->setChecked(false);
ui->actionIPv6HashTable->setChecked(false);
ui->actionPortNames->setChecked(false);
diff --git a/ui/qt/resolved_addresses_dialog.h b/ui/qt/resolved_addresses_dialog.h
index 01aef1e4a0..d268b28017 100644
--- a/ui/qt/resolved_addresses_dialog.h
+++ b/ui/qt/resolved_addresses_dialog.h
@@ -44,6 +44,7 @@ protected slots:
private slots:
void on_actionAddressesHosts_triggered();
+ void on_actionComment_triggered();
void on_actionIPv4HashTable_triggered();
void on_actionIPv6HashTable_triggered();
void on_actionPortNames_triggered();
@@ -57,6 +58,7 @@ private slots:
private:
Ui::ResolvedAddressesDialog *ui;
QString file_name_;
+ QString comment_;
QStringList host_addresses_;
QStringList v4_hash_addrs_;
QStringList v6_hash_addrs_;
diff --git a/ui/qt/resolved_addresses_dialog.ui b/ui/qt/resolved_addresses_dialog.ui
index 7e174085ac..c5ab5c6946 100644
--- a/ui/qt/resolved_addresses_dialog.ui
+++ b/ui/qt/resolved_addresses_dialog.ui
@@ -28,6 +28,20 @@
</widget>
</item>
</layout>
+ <action name="actionComment">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Comment</string>
+ </property>
+ <property name="toolTip">
+ <string>Show the comment.</string>
+ </property>
+ </action>
<action name="actionIPv4HashTable">
<property name="checkable">
<bool>true</bool>
diff --git a/ui/tap_export_pdu.c b/ui/tap_export_pdu.c
index 7a315a8b29..0055c1290f 100644
--- a/ui/tap_export_pdu.c
+++ b/ui/tap_export_pdu.c
@@ -163,7 +163,9 @@ exp_pdu_file_open(exp_pdu_t *exp_pdu_tap_data)
g_array_append_val(idb_inf->interface_data, int_data);
- exp_pdu_tap_data->wdh = wtap_dump_fdopen_ng(import_file_fd, WTAP_FILE_TYPE_SUBTYPE_PCAPNG, WTAP_ENCAP_WIRESHARK_UPPER_PDU, WTAP_MAX_PACKET_SIZE, FALSE, shb_hdr, idb_inf, &err);
+ exp_pdu_tap_data->wdh = wtap_dump_fdopen_ng(import_file_fd, WTAP_FILE_TYPE_SUBTYPE_PCAPNG,
+ WTAP_ENCAP_WIRESHARK_UPPER_PDU, WTAP_MAX_PACKET_SIZE,
+ FALSE, shb_hdr, idb_inf, NULL, &err);
if (exp_pdu_tap_data->wdh == NULL) {
open_failure_alert_box(capfile_name, err, TRUE);
goto end;