#include <epan/tvbuff.h>
#include <epan/packet.h>
#include <epan/emem.h>
+#include <epan/expert.h>
#include "packet-range.h"
#include "print.h"
/* Open fake protocol wrapper */
fputs("<proto name=\"fake-field-wrapper\">\n", pdata->fh);
- /* Indent to increased level before writint out field */
+ /* Indent to increased level before writing out field */
pdata->level++;
for (i = -1; i < pdata->level; i++) {
fputs(" ", pdata->fh);
/* Write out field with data */
fputs("<field name=\"data\" value=\"", pdata->fh);
write_pdml_field_hex_value(pdata, fi);
- fputs("\"/>\n", pdata->fh);
+ fputs("\">\n", pdata->fh);
}
/* 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 {
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);
}
else {
fputs("</field>\n", pdata->fh);
}
+ } else {
+ fputs("</field>\n", pdata->fh);
}
}