diff options
Diffstat (limited to 'epan/packet.h')
-rw-r--r-- | epan/packet.h | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/epan/packet.h b/epan/packet.h index 9d4efaf02d..47eed6fe33 100644 --- a/epan/packet.h +++ b/epan/packet.h @@ -765,15 +765,50 @@ WS_DLL_PUBLIC void dissector_dump_decodes(void); WS_DLL_PUBLIC void dissector_dump_heur_decodes(void); /* - * post dissectors are to be called by packet-frame.c after every other + * postdissectors are to be called by packet-frame.c after every other * dissector has been called. */ -WS_DLL_PUBLIC void register_postdissector(dissector_handle_t); + +/* + * Register a postdissector; the argument is the dissector handle for it. + */ +WS_DLL_PUBLIC void register_postdissector(dissector_handle_t handle); + +/* + * Specify a set of fields that the postdissector will need. + * The GArray is an array of hfids. + */ +WS_DLL_PUBLIC void set_postdissector_wanted_fields(dissector_handle_t handle, + GArray *wanted_fields); + +/* + * Deregister a postdissector. Not for use in (post)dissectors or + * applications; only to be used by libwireshark itself. + */ void deregister_postdissector(dissector_handle_t handle); +/* + * Return TRUE if we have at least one postdissector, FALSE if not. + * Not for use in (post)dissectors or applications; only to be used + * by libwireshark itself. + */ extern gboolean have_postdissector(void); + +/* + * Call all postdissectors, handing them the supplied arguments. + * Not for use in (post)dissectors or applications; only to be used + * by libwireshark itself. + */ extern void call_all_postdissectors(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +/* + * Return TRUE if at least one postdissector wants fields, FALSE otherwise. + * XXX - at some point this should return a bag of all fields requested by + * all postdissectors, so we can prime the epan_dissect_t with them rather + * than constructing a bogus tap with a bogus filter. + */ +WS_DLL_PUBLIC gboolean postdissectors_want_fields(void); + /** @} */ #ifdef __cplusplus |