diff options
author | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2011-12-14 21:13:06 +0000 |
---|---|---|
committer | Chris Maynard <Christopher.Maynard@GTECH.COM> | 2011-12-14 21:13:06 +0000 |
commit | 0a1072b08333167bc0955cedfb1997621d336d4b (patch) | |
tree | 884b95a372bc6a4e46c058086bb32458bc0d661b | |
parent | 586ea8d092d70b7ffa3ffa7c3ddc26a75aa60ee7 (diff) | |
download | wireshark-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.c | 5 | ||||
-rw-r--r-- | epan/expert.h | 5 | ||||
-rw-r--r-- | epan/libwireshark.def | 1 | ||||
-rw-r--r-- | print.c | 6 |
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 @@ -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); } |