#include "config.h"
#include <epan/packet.h>
#include <epan/expert.h>
+#include <epan/decode_as.h>
#include <epan/conversation.h>
#include <epan/tfs.h>
#include <epan/reassemble.h>
static dissector_table_t iso14443_cmd_type_table;
+static dissector_table_t iso14443_subdissector_table;
+
static int ett_iso14443 = -1;
static int ett_iso14443_hdr = -1;
static int ett_iso14443_msg = -1;
&i_block_frag_items, NULL, tree);
if (payload_tvb) {
- /* XXX - forward to the actual upper layer protocol */
- call_data_dissector(payload_tvb, pinfo, tree);
+ if (!dissector_try_payload_new(iso14443_subdissector_table,
+ payload_tvb, pinfo, tree, TRUE, NULL)) {
+ call_data_dissector(payload_tvb, pinfo, tree);
+ }
}
}
register_dissector("iso14443", dissect_iso14443, proto_iso14443);
transactions = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope());
+
+ iso14443_subdissector_table =
+ register_decode_as_next_proto(proto_iso14443,
+ "Payload", "iso14443.subdissector",
+ "ISO14443 payload subdissector", NULL);
}