Treat expert info as a <field> instead of a <proto> when exporting to pdml.
svn path=/trunk/; revision=40204
This commit is contained in:
parent
586ea8d092
commit
0a1072b083
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
6
print.c
6
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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue