aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Maynard <Christopher.Maynard@GTECH.COM>2011-12-14 21:13:06 +0000
committerChris Maynard <Christopher.Maynard@GTECH.COM>2011-12-14 21:13:06 +0000
commit0a1072b08333167bc0955cedfb1997621d336d4b (patch)
tree884b95a372bc6a4e46c058086bb32458bc0d661b
parent586ea8d092d70b7ffa3ffa7c3ddc26a75aa60ee7 (diff)
downloadwireshark-0a1072b08333167bc0955cedfb1997621d336d4b.tar.gz
wireshark-0a1072b08333167bc0955cedfb1997621d336d4b.tar.bz2
wireshark-0a1072b08333167bc0955cedfb1997621d336d4b.zip
Treat expert info as a <field> instead of a <proto> when exporting to pdml.
svn path=/trunk/; revision=40204
-rw-r--r--epan/expert.c5
-rw-r--r--epan/expert.h5
-rw-r--r--epan/libwireshark.def1
-rw-r--r--print.c6
4 files changed, 14 insertions, 3 deletions
diff --git a/epan/expert.c b/epan/expert.c
index cc737ec897..c549e86f39 100644
--- a/epan/expert.c
+++ b/epan/expert.c
@@ -34,9 +34,12 @@
#include "tap.h"
+/* proto_expert cannot be static because it's referenced in the
+ * print routines
+ */
+int proto_expert = -1;
static int expert_tap = -1;
-static int proto_expert = -1;
static int highest_severity = 0;
static int ett_expert = -1;
diff --git a/epan/expert.h b/epan/expert.h
index 58bd9e44fa..87cd65f2e3 100644
--- a/epan/expert.h
+++ b/epan/expert.h
@@ -47,6 +47,11 @@ typedef struct expert_info_s {
WS_VAR_IMPORT const value_string expert_severity_vals[];
WS_VAR_IMPORT const value_string expert_group_vals[];
+/* "proto_expert" is exported from libwireshark.dll.
+ * Thus we need a special declaration.
+ */
+WS_VAR_IMPORT int proto_expert;
+
extern void
expert_init(void);
diff --git a/epan/libwireshark.def b/epan/libwireshark.def
index 1e568f07b4..3ccddb8ca0 100644
--- a/epan/libwireshark.def
+++ b/epan/libwireshark.def
@@ -744,6 +744,7 @@ proto_check_field_name
proto_construct_match_selected_string
proto_data DATA
proto_enable_all
+proto_expert DATA
proto_field_is_referenced
proto_find_field_from_offset
proto_find_finfo
diff --git a/print.c b/print.c
index 647a8d4e0b..0f0014cbb0 100644
--- a/print.c
+++ b/print.c
@@ -38,6 +38,7 @@
#include <epan/tvbuff.h>
#include <epan/packet.h>
#include <epan/emem.h>
+#include <epan/expert.h>
#include "packet-range.h"
#include "print.h"
@@ -364,7 +365,7 @@ proto_tree_write_node_pdml(proto_node *node, gpointer data)
}
/* Normal protocols and fields */
else {
- if (fi->hfinfo->type == FT_PROTOCOL) {
+ if (fi->hfinfo->type == FT_PROTOCOL && fi->hfinfo->id != proto_expert) {
fputs("<proto name=\"", pdata->fh);
}
else {
@@ -493,7 +494,8 @@ proto_tree_write_node_pdml(proto_node *node, gpointer data)
fputs(" ", pdata->fh);
}
/* Close off current element */
- if (fi->hfinfo->id != proto_data) { /* Data protocol uses simple tags */
+ /* Data and expert "protocols" use simple tags */
+ if (fi->hfinfo->id != proto_data && fi->hfinfo->id != proto_expert) {
if (fi->hfinfo->type == FT_PROTOCOL) {
fputs("</proto>\n", pdata->fh);
}