34#define hi_nibble(b) (((b) & 0xf0) >> 4)
35#define lo_nibble(b) ((b) & 0x0f)
39#define BYTES_ARE_IN_FRAME(offset, captured_len, len) \
40 ((unsigned)(offset) + (unsigned)(len) > (unsigned)(offset) && \
41 (unsigned)(offset) + (unsigned)(len) <= (unsigned)(captured_len))
46#define STRING_CASE_SENSITIVE 0
47#define STRING_CASE_INSENSITIVE 1
114typedef void (*DATFunc) (
const char *table_name,
ftenum_t selector_type,
115 void *key,
void *value,
void *user_data);
116typedef void (*DATFunc_handle) (
const char *table_name,
void *value,
118typedef void (*DATFunc_table) (
const char *table_name,
const char *ui_name,
197 void *user_data, GCompareFunc compare_key_func);
214 const char *ui_name,
const int proto,
const ftenum_t type,
const int param);
227 const char *ui_name,
const int proto, GHashFunc hash_func, GEqualFunc key_equal_func,
228 GDestroyNotify key_destroy_func);
236 const char *alias_name);
418 const char *name,
const uint32_t uint_val);
532 const char *name,
const char *
string);
788typedef void (*DATFunc_heur) (
const char *table_name,
790typedef void (*DATFunc_heur_table) (
const char *table_name,
803 DATFunc_heur func,
void *user_data);
814 void *user_data, GCompareFunc compare_key_func);
863 const char *display_name,
const char *internal_name,
const int proto,
heuristic_enable_e enable);
884 dissector_t dissector,
const int proto);
896 const char *description, dissector_t dissector,
const int proto);
909 dissector_cb_t dissector,
const int proto,
void *cb_data);
992 const int parent_proto);
1046 dissector_t dissector,
const int proto,
const char *name);
1063 const int proto,
const char* name,
const char* description);
1078 dissector_cb_t dissector,
const int proto,
void *cb_data);
1473 GArray *wanted_hfids);
enum ftenum ftenum_t
Convenience typedef for ftenum.
Definition ftypes.h:190
DIAG_OFF_PEDANTIC struct _frame_data frame_data
Frame data structure.
WS_DLL_PUBLIC void dissector_table_foreach(const char *table_name, DATFunc func, void *user_data)
Definition packet.c:2611
WS_DLL_PUBLIC void register_postdissector(dissector_handle_t handle)
Register a postdissector; the argument is the dissector handle for it.
Definition packet.c:4173
WS_DLL_PUBLIC bool has_heur_dissector_list(const char *name)
Check if a heuristic dissector list of the given name exists.
Definition packet.c:2947
WS_DLL_PUBLIC int call_dissector_only(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
Definition packet.c:3682
WS_DLL_PUBLIC const char * dissector_handle_get_protocol_long_name(const dissector_handle_t handle)
Return the long (full) protocol name for a dissector handle.
Definition packet.c:3374
void deregister_dissector(const char *name)
Deregister a previously registered dissector.
Definition packet.c:3666
WS_DLL_PUBLIC void dissector_add_uint_with_preference(const char *name, const uint32_t pattern, dissector_handle_t handle)
Add a uint-keyed entry to a dissector table and automatically register a corresponding user preferenc...
Definition packet.c:1490
WS_DLL_PUBLIC dissector_handle_t dissector_get_default_string_handle(const char *name, const char *string)
Definition packet.c:2114
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle_with_data(dissector_cb_t dissector, const int proto, void *cb_data)
Create an anonymous, unregistered callback-style dissector handle.
Definition packet.c:3578
WS_DLL_PUBLIC void increment_dissection_depth_by_n(packet_info *pinfo, unsigned n)
Definition packet.c:4284
WS_DLL_PUBLIC dissector_handle_t dtbl_entry_get_handle(dtbl_entry_t *dtbl_entry)
Return the currently active dissector handle for a dissector table entry.
Definition packet.c:2297
WS_DLL_PUBLIC dissector_handle_t dissector_get_payload_handle(dissector_table_t const dissector_table)
Return the currently active dissector handle for a payload dissector table.
Definition packet.c:2291
WS_DLL_PUBLIC void set_actual_length(tvbuff_t *tvb, const unsigned specified_len)
Given a tvbuff, and a length from a packet header, adjust the length of the tvbuff to reflect the spe...
Definition packet.c:340
WS_DLL_PUBLIC heur_dtbl_entry_t * find_heur_dissector_by_unique_short_name(const char *short_name)
Definition packet.c:2951
WS_DLL_PUBLIC tvbuff_t * get_data_source_tvb(const struct data_source *src)
Return the tvbuff associated with a data source.
Definition packet.c:496
void dissector_table_foreach_changed(const char *table_name, DATFunc func, void *user_data)
Definition packet.c:2688
WS_DLL_PUBLIC dissector_handle_t dissector_get_default_uint_handle(const char *name, const uint32_t uint_val)
Definition packet.c:1808
WS_DLL_PUBLIC dissector_handle_t find_dissector_add_dependency(const char *name, const int parent_proto)
Find a registered dissector by name and record a protocol dependency.
Definition packet.c:3449
WS_DLL_PUBLIC dissector_handle_t register_dissector(const char *name, dissector_t dissector, const int proto)
Register a new dissector with the global dissector registry.
Definition packet.c:3620
void deregister_dissector_table(const char *name)
Deregister the dissector table by table name.
Definition packet.c:2885
void packet_cleanup(void)
Clean up the packet dissection engine.
Definition packet.c:312
WS_DLL_PUBLIC void dissector_add_uint(const char *name, const uint32_t pattern, dissector_handle_t handle)
Add a uint-keyed entry to a dissector table.
Definition packet.c:1336
WS_DLL_PUBLIC dissector_handle_t dissector_get_guid_handle(dissector_table_t const sub_dissectors, guid_key *guid_val)
Definition packet.c:2253
WS_DLL_PUBLIC void set_postdissector_wanted_hfids(dissector_handle_t handle, GArray *wanted_hfids)
Definition packet.c:4183
WS_DLL_PUBLIC dissector_handle_t register_dissector_with_data(const char *name, dissector_cb_t dissector, const int proto, void *cb_data)
Register a new dissector that carries an opaque callback pointer.
Definition packet.c:3640
WS_DLL_PUBLIC void dissector_change_uint(const char *abbrev, const uint32_t pattern, dissector_handle_t handle)
Override the dissector for a uint value in a dissector table.
Definition packet.c:1636
WS_DLL_PUBLIC heur_dissector_list_t find_heur_dissector_list(const char *name)
Definition packet.c:2941
WS_DLL_PUBLIC void dissector_delete_string(const char *name, const char *pattern, dissector_handle_t handle)
Remove the entry for a specific string value from a dissector table.
Definition packet.c:1926
WS_DLL_PUBLIC ftenum_t dissector_table_get_type(dissector_table_t dissector_table)
Return the selector field type of a dissector table.
Definition packet.c:2488
void call_all_postdissectors(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
Invoke all registered postdissectors on the current frame.
Definition packet.c:4237
WS_DLL_PUBLIC void dissector_dump_decodes(void)
Dump layer/selector/dissector records in a fashion similar to the proto_registrar_dump_* routines.
Definition packet.c:4002
void packet_all_tables_sort_handles(void)
Sort the dissector handles in all dissector tables.
Definition packet.c:2325
WS_DLL_PUBLIC void register_postseq_cleanup_routine(void(*func)(void))
Allow protocols to register a "cleanup" routine to be run after the initial sequential run through th...
Definition packet.c:421
WS_DLL_PUBLIC int dissector_try_uint(dissector_table_t sub_dissectors, const uint32_t uint_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
Try to dissect using a uint-keyed dissector table entry.
Definition packet.c:1786
WS_DLL_PUBLIC const char * dissector_handle_get_dissector_name(const dissector_handle_t handle)
Return the registered name of a dissector from its handle.
Definition packet.c:3462
void deregister_heur_dissector_list(const char *name)
Definition packet.c:3348
WS_DLL_PUBLIC void dissector_dump_heur_decodes(void)
For each heuristic dissector table, dump list of dissectors (filter_names) for that table.
Definition packet.c:3316
WS_DLL_PUBLIC dissector_handle_t dissector_get_custom_table_handle(dissector_table_t sub_dissectors, void *key)
Definition packet.c:2157
WS_DLL_PUBLIC GList * get_dissector_names(void)
Return a GList of all registered dissector name strings.
Definition packet.c:3432
WS_DLL_PUBLIC const char * dissector_handle_get_description(const dissector_handle_t handle)
Return the user-visible description for a dissector handle.
Definition packet.c:3403
WS_DLL_PUBLIC void dissector_delete_uint(const char *name, const uint32_t pattern, dissector_handle_t handle)
Remove the entry for a specific uint value from a dissector table.
Definition packet.c:1519
WS_DLL_PUBLIC bool dissector_table_supports_decode_as(dissector_table_t dissector_table)
Return whether a dissector table supports Decode As.
Definition packet.c:2503
WS_DLL_PUBLIC void decrement_dissection_depth(packet_info *pinfo)
Decrement the dissection depth.
Definition packet.c:4302
WS_DLL_PUBLIC void register_init_routine(void(*func)(void))
Definition packet.c:354
struct file_data_s file_data_t
Holds the data passed to the file dissector for dissection of a capture file as a whole.
WS_DLL_PUBLIC dissector_handle_t dissector_get_uint_handle(dissector_table_t const sub_dissectors, const uint32_t uint_val)
Definition packet.c:1796
WS_DLL_PUBLIC void heur_dissector_delete(const char *name, heur_dissector_t dissector, const int proto)
Definition packet.c:3043
WS_DLL_PUBLIC void set_data_source_name(packet_info *pinfo, struct data_source *src, const char *name)
Definition packet.c:454
WS_DLL_PUBLIC bool register_depend_dissector(const char *parent, const char *dependent)
Definition packet.c:3802
struct _guid_key guid_key
Lookup key for GUID-indexed dissector tables, combining a GUID with an optional version field.
void deregister_postdissector(dissector_handle_t handle)
Deregister a postdissector. Not for use in (post)dissectors or applications; only to be used by libwi...
Definition packet.c:4201
WS_DLL_PUBLIC void register_cleanup_routine(void(*func)(void))
Definition packet.c:360
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle(dissector_t dissector, const int proto)
Create an anonymous, unregistered dissector handle.
Definition packet.c:3560
WS_DLL_PUBLIC const char * dissector_handle_get_pref_suffix(const dissector_handle_t handle)
Return the preferences suffix string for a dissector handle.
Definition packet.c:3471
WS_DLL_PUBLIC int dissector_try_string_with_data(dissector_table_t sub_dissectors, const char *string, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
Look for a given string in a given dissector table and, if found, call the dissector with the argumen...
Definition packet.c:2043
WS_DLL_PUBLIC const char * dissector_handle_get_protocol_short_name(const dissector_handle_t handle)
Return the short protocol name for a dissector handle.
Definition packet.c:3385
WS_DLL_PUBLIC bool dissector_is_string_changed(dissector_table_t const subdissectors, const char *string)
Return whether a string dissector table entry has been overridden.
Definition packet.c:2029
WS_DLL_PUBLIC void dissector_delete_uint_range(const char *abbrev, range_t *range, dissector_handle_t handle)
Remove a range of uint-keyed entries from a dissector table.
Definition packet.c:1542
WS_DLL_PUBLIC void remove_last_data_source(packet_info *pinfo)
Remove the most recently added data source from a packet.
Definition packet.c:469
WS_DLL_PUBLIC void dissector_change_string(const char *name, const char *pattern, dissector_handle_t handle)
Override the dissector for a string value in a dissector table.
Definition packet.c:1951
WS_DLL_PUBLIC ftenum_t get_dissector_table_selector_type(const char *name)
Return the field type of the selector for a dissector table.
Definition packet.c:2912
WS_DLL_PUBLIC void register_final_registration_routine(void(*func)(void))
Definition packet.c:587
WS_DLL_PUBLIC void heur_dissector_table_foreach(const char *table_name, DATFunc_heur func, void *user_data)
Definition packet.c:3213
WS_DLL_PUBLIC void dissector_add_custom_table_handle(const char *name, void *pattern, dissector_handle_t handle)
Add an entry to a "custom" dissector table.
Definition packet.c:2130
WS_DLL_PUBLIC void dissector_add_uint_range(const char *abbrev, range_t *range, dissector_handle_t handle)
Add a range of uint-keyed entries to a dissector table.
Definition packet.c:1354
WS_DLL_PUBLIC void dissector_table_allow_decode_as(dissector_table_t dissector_table)
Mark a dissector table as supporting Decode As.
Definition packet.c:2494
WS_DLL_PUBLIC void dissector_change_payload(const char *abbrev, dissector_handle_t handle)
Override the payload dissector for an FT_NONE dissector table.
Definition packet.c:2276
heuristic_enable_e
Controls whether a heuristic dissector is active.
Definition packet.h:109
WS_DLL_PUBLIC void dissector_dump_dissector_tables(void)
Print information about all registered dissector tables to standard output.
Definition packet.c:4106
struct frame_data_s frame_data_t
Holds the data passed to the frame dissector for dissection of a single packet frame.
WS_DLL_PUBLIC struct data_source * get_data_source_by_name(const packet_info *pinfo, const char *name)
Definition packet.c:508
WS_DLL_PUBLIC dissector_handle_t find_dissector(const char *name)
Find a registered dissector by name.
Definition packet.c:3443
WS_DLL_PUBLIC int call_dissector(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
Call a dissector through its handle, falling back to the data dissector.
Definition packet.c:3713
void dissect_file(struct epan_dissect *edt, wtap_rec *rec, frame_data *fd, column_info *cinfo)
Dissectors should never modify the file data.
Definition packet.c:765
void init_dissection(const char *app_env_var_prefix)
Initialize all data structures used for dissection.
Definition packet.c:374
WS_DLL_PUBLIC void increment_dissection_depth(packet_info *pinfo)
Definition packet.c:4291
WS_DLL_PUBLIC void dissector_all_tables_foreach_table(DATFunc_table func, void *user_data, GCompareFunc compare_key_func)
Definition packet.c:2743
WS_DLL_PUBLIC void dissector_all_heur_tables_foreach_table(DATFunc_heur_table func, void *user_data, GCompareFunc compare_key_func)
Definition packet.c:3269
void packet_init(void)
Initialize the packet dissection engine.
Definition packet.c:231
void dissect_record(struct epan_dissect *edt, int file_type_subtype, wtap_rec *rec, frame_data *fd, column_info *cinfo)
Dissectors should never modify the record data.
Definition packet.c:604
WS_DLL_PUBLIC void dissector_reset_string(const char *name, const char *pattern)
Reset a string dissector table entry to its initial registered value.
Definition packet.c:1997
WS_DLL_PUBLIC char * get_data_source_description(const struct data_source *src)
Return the description of a data source.
Definition packet.c:478
WS_DLL_PUBLIC GSList * dissector_table_get_dissector_handles(dissector_table_t dissector_table)
Return the list of all dissector handles registered with a table.
Definition packet.c:2441
WS_DLL_PUBLIC void dissector_all_tables_foreach_changed(DATFunc func, void *user_data)
Definition packet.c:2672
WS_DLL_PUBLIC void dissector_reset_payload(const char *name)
Reset an FT_NONE payload dissector table to its initial registered value.
Definition packet.c:2282
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle_with_name_and_description(dissector_t dissector, const int proto, const char *name, const char *description)
Definition packet.c:3537
WS_DLL_PUBLIC int dissector_handle_get_protocol_index(const dissector_handle_t handle)
Return the protocol index for a dissector handle.
Definition packet.c:3414
WS_DLL_PUBLIC void mark_frame_as_depended_upon(frame_data *fd, uint32_t frame_num)
Mark another frame as depended upon by the current frame.
Definition packet.c:563
WS_DLL_PUBLIC dissector_table_t register_dissector_table(const char *name, const char *ui_name, const int proto, const ftenum_t type, const int param)
a protocol uses the function to register a sub-dissector table
Definition packet.c:2766
WS_DLL_PUBLIC bool dissector_is_uint_changed(dissector_table_t const sub_dissectors, const uint32_t uint_val)
Return whether a uint dissector table entry has been overridden.
Definition packet.c:1714
WS_DLL_PUBLIC void set_data_source_media_type(struct data_source *src, data_source_media_type_e media_type)
Definition packet.c:461
WS_DLL_PUBLIC depend_dissector_list_t find_depend_dissector_list(const char *name)
Definition packet.c:3835
WS_DLL_PUBLIC const char * heur_dissector_list_get_description(heur_dissector_list_t list)
Definition packet.c:3359
void cleanup_dissection(void)
Free data structures allocated for dissection.
Definition packet.c:399
void packet_cache_proto_handles(void)
Cache protocol handles for fast lookup during dissection.
Definition packet.c:255
WS_DLL_PUBLIC void dissector_delete_guid(const char *name, guid_key *guid_val, dissector_handle_t handle)
Delete a GUID from a dissector table.
Definition packet.c:1557
WS_DLL_PUBLIC void register_dissector_table_alias(dissector_table_t dissector_table, const char *alias_name)
Definition packet.c:2867
WS_DLL_PUBLIC bool postdissectors_want_hfids(void)
Return whether any postdissector has requested specific hfids.
Definition packet.c:4248
WS_DLL_PUBLIC bool deregister_depend_dissector(const char *parent, const char *dependent)
Definition packet.c:3825
WS_DLL_PUBLIC void decrement_dissection_depth_by_n(packet_info *pinfo, unsigned n)
Decrement the dissection depth by a value.
Definition packet.c:4296
WS_DLL_PUBLIC int call_data_dissector(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
Call a data dissector.
Definition packet.c:3720
WS_DLL_PUBLIC struct data_source * add_new_data_source(packet_info *pinfo, tvbuff_t *tvb, const char *name)
Definition packet.c:439
WS_DLL_PUBLIC void dissector_add_guid(const char *name, guid_key *guid_val, dissector_handle_t handle)
Add an entry to a guid dissector table.
Definition packet.c:2167
WS_DLL_PUBLIC int call_dissector_with_data(dissector_handle_t handle, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
Call a dissector through a handle and if no dissector was found pass it over to the "data" dissector ...
Definition packet.c:3696
WS_DLL_PUBLIC void call_heur_dissector_direct(heur_dtbl_entry_t *heur_dtbl_entry, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
Definition packet.c:3729
WS_DLL_PUBLIC void dissector_add_string(const char *name, const char *pattern, dissector_handle_t handle)
Add a string-keyed entry to a dissector table.
Definition packet.c:1864
void prime_epan_dissect_with_postdissector_wanted_hfids(epan_dissect_t *edt)
Prime an epan_dissect_t with all hfids requested by postdissectors.
Definition packet.c:4263
WS_DLL_PUBLIC const char * dissector_handle_get_short_name(const dissector_handle_t handle)
Return the short protocol name for a dissector handle.
Definition packet.c:3395
WS_DLL_PUBLIC void heur_dissector_add(const char *name, heur_dissector_t dissector, const char *display_name, const char *internal_name, const int proto, heuristic_enable_e enable)
Definition packet.c:2957
WS_DLL_PUBLIC void postseq_cleanup_all_protocols(void)
Call all the registered "postseq_cleanup" routines.
Definition packet.c:429
WS_DLL_PUBLIC dissector_handle_t register_dissector_with_description(const char *name, const char *description, dissector_t dissector, const int proto)
Register a new dissector with a custom user-visible description.
Definition packet.c:3630
bool have_postdissector(void)
Return whether any postdissectors are registered.
Definition packet.c:4219
WS_DLL_PUBLIC dissector_handle_t create_dissector_handle_with_name(dissector_t dissector, const int proto, const char *name)
Create a named, unregistered dissector handle.
Definition packet.c:3552
WS_DLL_PUBLIC struct data_source * get_data_source_by_tvb(const packet_info *pinfo, const tvbuff_t *tvb)
Definition packet.c:526
bool(* heur_dissector_t)(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *)
Definition packet.h:103
WS_DLL_PUBLIC dissector_handle_t dissector_table_get_dissector_handle(dissector_table_t dissector_table, const char *description)
Look up a dissector handle in a table by its description string.
Definition packet.c:2471
void free_data_sources(packet_info *pinfo)
Free up a frame's list of data sources.
Definition packet.c:554
WS_DLL_PUBLIC void dissector_add_for_decode_as(const char *name, dissector_handle_t handle)
Register a dissector handle as a candidate for Decode As on a table.
Definition packet.c:2344
WS_DLL_PUBLIC heur_dissector_list_t register_heur_dissector_list(const char *name, const int proto)
Definition packet.c:3342
WS_DLL_PUBLIC const char * get_data_source_name(const struct data_source *src)
Return the display name of a data source.
Definition packet.c:487
void final_registration_all_protocols(void)
Call all the registered "final_registration" routines.
Definition packet.c:595
WS_DLL_PUBLIC int dissector_try_uint_with_data(dissector_table_t sub_dissectors, const uint32_t uint_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
Try to dissect using a uint-keyed dissector table entry, with additional options and caller data.
Definition packet.c:1729
data_source_media_type_e
MIME media type descriptor for a packet data source buffer.
Definition packet.h:1261
struct ethertype_data_s ethertype_data_t
Holds the parameters passed to the Ethertype dissector for dissecting an Ethernet payload.
WS_DLL_PUBLIC void dissector_table_foreach_handle(const char *table_name, DATFunc_handle func, void *user_data)
Definition packet.c:2630
WS_DLL_PUBLIC const char * get_dissector_table_ui_name(const char *name)
Return the UI display name for a dissector table.
Definition packet.c:2903
WS_DLL_PUBLIC bool dissector_try_heuristic(heur_dissector_list_t sub_dissectors, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, heur_dtbl_entry_t **hdtbl_entry, void *data)
Definition packet.c:3069
WS_DLL_PUBLIC dissector_table_t find_dissector_table(const char *name)
Find a dissector table by its internal name.
Definition packet.c:1204
WS_DLL_PUBLIC dissector_handle_t dtbl_entry_get_initial_handle(dtbl_entry_t *entry)
Return the initial (registered) dissector handle for a dissector table entry.
Definition packet.c:2435
WS_DLL_PUBLIC void register_shutdown_routine(void(*func)(void))
Definition packet.c:367
WS_DLL_PUBLIC int dissector_try_payload_with_data(dissector_table_t sub_dissectors, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
Invoke the currently assigned payload dissector for a dissector table.
Definition packet.c:2268
WS_DLL_PUBLIC void dissector_dump_dissectors(void)
Dump all registered dissectors to the standard output.
Definition packet.c:4145
WS_DLL_PUBLIC void dissector_reset_uint(const char *name, const uint32_t pattern)
Reset a uint dissector table entry to its initial registered value.
Definition packet.c:1681
WS_DLL_PUBLIC void dissector_add_for_decode_as_with_preference(const char *name, dissector_handle_t handle)
Same as dissector_add_for_decode_as(), but also registers a user preference for the dissector table v...
Definition packet.c:2422
WS_DLL_PUBLIC int dissector_try_guid_with_data(dissector_table_t sub_dissectors, guid_key *guid_val, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, const bool add_proto_name, void *data)
Look for a given value in a given guid dissector table and, if found, call the dissector with the arg...
Definition packet.c:2199
WS_DLL_PUBLIC void dissector_delete_all(const char *name, dissector_handle_t handle)
Remove all entries for a given dissector handle from a table.
Definition packet.c:1604
WS_DLL_PUBLIC dissector_table_t register_custom_dissector_table(const char *name, const char *ui_name, const int proto, GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func)
Similar to register_dissector_table, but with a "custom" hash function to store subdissectors.
Definition packet.c:2837
WS_DLL_PUBLIC void dissector_add_uint_range_with_preference(const char *abbrev, const char *range_str, dissector_handle_t handle)
Add a range of uint-keyed entries to a dissector table and automatically register a corresponding use...
Definition packet.c:1501
WS_DLL_PUBLIC dissector_handle_t dissector_get_string_handle(dissector_table_t sub_dissectors, const char *string)
Definition packet.c:2099
WS_DLL_PUBLIC int get_dissector_table_param(const char *name)
Return the parameter value associated with a dissector table.
Definition packet.c:2921
WS_DLL_PUBLIC data_source_media_type_e get_data_source_media_type(const struct data_source *src)
Definition packet.c:541
struct heur_dtbl_entry heur_dtbl_entry_t
Represents a single entry in a heuristic dissector table, binding a heuristic dissector to its protoc...
WS_DLL_PUBLIC heur_dissector_list_t register_heur_dissector_list_with_description(const char *name, const char *ui_name, const int proto)
Definition packet.c:3323
@ HEURISTIC_DISABLE
Definition packet.h:110
@ HEURISTIC_ENABLE
Definition packet.h:111
@ DS_MEDIA_TYPE_APPLICATION_JSON
Definition packet.h:1263
@ DS_MEDIA_TYPE_APPLICATION_OCTET_STREAM
Definition packet.h:1262
Represents a GUID/UUID value; may be larger than GUID_LEN so must not be used to directly overlay pac...
Definition guid-utils.h:21
Lookup key for GUID-indexed dissector tables, combining a GUID with an optional version field.
Definition packet.h:558
uint16_t ver
Definition packet.h:560
e_guid_t guid
Definition packet.h:559
Represents the metadata and indexing information for a single captured frame.
Definition packet_info.h:43
Definition column-info.h:59
Holds all state for the dissection of a single byte array, including session, buffer,...
Definition epan_dissect.h:28
Holds the parameters passed to the Ethertype dissector for dissecting an Ethernet payload.
Definition packet.h:1426
int payload_offset
Definition packet.h:1428
uint16_t etype
Definition packet.h:1427
int fcs_len
Definition packet.h:1431
proto_tree * fh_tree
Definition packet.h:1429
int trailer_id
Definition packet.h:1430
Holds the data passed to the file dissector for dissection of a capture file as a whole.
Definition packet.h:1396
wtap_block_t pkt_block
Definition packet.h:1397
struct epan_dissect * color_edt
Definition packet.h:1398
Holds the data passed to the frame dissector for dissection of a single packet frame.
Definition packet.h:1385
int file_type_subtype
Definition packet.h:1386
wtap_block_t pkt_block
Definition packet.h:1387
struct epan_dissect * color_edt
Definition packet.h:1389
Represents a single entry in a heuristic dissector table, binding a heuristic dissector to its protoc...
Definition packet.h:752
const char * display_name
Definition packet.h:756
char * list_name
Definition packet.h:755
char * short_name
Definition packet.h:757
bool enabled
Definition packet.h:758
bool enabled_by_default
Definition packet.h:759
heur_dissector_t dissector
Definition packet.h:753
protocol_t * protocol
Definition packet.h:754
Core tvbuff (testy virtual buffer) structure representing a region of packet data,...
Definition tvbuff-int.h:95
Definition wtap_opttypes.h:272
WS_DEPRECATED_X("Use ip_num_to_str_buf() or ip_addr_to_str() instead") WS_DLL_PUBLIC void ip_to_str_buf(const uint8_t *ad
Converts a 32-bit IPv4 address to string format.