Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
decode_as.h
Go to the documentation of this file.
1/* decode_as.h
2 * Routines for dissector Decode As handlers
3 *
4 * Wireshark - Network traffic analyzer
5 * By Gerald Combs <[email protected]>
6 * Copyright 1998 Gerald Combs
7 *
8 * SPDX-License-Identifier: GPL-2.0-or-later
9 */
10
11#ifndef __DECODE_AS_H__
12#define __DECODE_AS_H__
13
14#include "ws_symbol_export.h"
15
16#include "ftypes/ftypes.h"
17#include "packet_info.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif /* __cplusplus */
22
26#define MAX_DECODE_AS_PROMPT_LEN 200
27#define DECODE_AS_ENTRY "decode_as_entry"
28#define DECODE_AS_NONE "(none)"
29
30/*
31 * Filename of the "decode as" entry preferences
32 */
33#define DECODE_AS_ENTRIES_FILE_NAME "decode_as_entries"
34
35
37typedef void (*build_label_func)(packet_info *pinfo, char* result);
38
40typedef void * (*build_valid_func)(packet_info *pinfo);
41
42typedef void (*decode_as_add_to_list_func)(const char *table_name, const char *proto_name, void *value, void *user_data);
43typedef void (*decode_as_populate_list_func)(const char *table_name, decode_as_add_to_list_func add_to_list, void *ui_element);
44typedef void (*decode_as_free_func)(void *value);
45typedef void (*decode_as_add_changed_list_func)(void* data, void* user_data);
46
48typedef bool (*decode_as_reset_func)(const char *name, const void *pattern);
50typedef bool (*decode_as_change_func)(const char *name, const void *pattern, const void *handle, const char *list_name);
52typedef void (*decode_as_reset_all_func)(void);
54typedef void (*decode_as_build_changed_list_func)(decode_as_add_changed_list_func func, void* user_data);
55
66
92
94WS_DLL_PUBLIC void register_decode_as(decode_as_t* reg);
95
96/* Forward declaration to prevent requiring packet.h */
97struct dissector_table;
98
113WS_DLL_PUBLIC struct dissector_table* register_decode_as_next_proto(int proto, const char *table_name, const char *ui_name, build_label_func label_func);
114
115/* Walk though the dissector table and provide dissector_handle_t for each item in the table */
116WS_DLL_PUBLIC void decode_as_default_populate_list(const char *table_name, decode_as_add_to_list_func add_to_list, void *ui_element);
117/* Clear a FT_UINT32 value from dissector table list */
118WS_DLL_PUBLIC bool decode_as_default_reset(const char *name, const void *pattern);
119/* Add a FT_UINT32 value to dissector table list */
120WS_DLL_PUBLIC bool decode_as_default_change(const char *name, const void *pattern, const void *handle, const char *list_name);
121
125WS_DLL_PUBLIC GList *decode_as_list;
126
127/* Some useful utilities for Decode As */
128
133extern void load_decode_as_entries(const char* app_env_var_prefix);
134
137WS_DLL_PUBLIC int save_decode_as_entries(const char* app_name, const char* app_env_var_prefix, char** err);
138
141WS_DLL_PUBLIC void decode_clear_all(void);
142
145WS_DLL_PUBLIC void decode_cleanup(void);
146
169WS_DLL_PUBLIC void decode_build_reset_list (const char *table_name, ftenum_t selector_type,
170 void *key, void *value,
171 void *user_data);
172
173
174#ifdef __cplusplus
175}
176#endif /* __cplusplus */
177
178#endif /* decode_as.h */
WS_DLL_PUBLIC void decode_build_reset_list(const char *table_name, ftenum_t selector_type, void *key, void *value, void *user_data)
struct decode_as_s decode_as_t
bool(* decode_as_change_func)(const char *name, const void *pattern, const void *handle, const char *list_name)
Definition decode_as.h:50
struct decode_as_value_s decode_as_value_t
WS_DLL_PUBLIC void register_decode_as(decode_as_t *reg)
Definition decode_as.c:28
WS_DLL_PUBLIC void decode_cleanup(void)
Definition decode_as.c:540
WS_DLL_PUBLIC void decode_clear_all(void)
Definition decode_as.c:489
void *(* build_valid_func)(packet_info *pinfo)
Definition decode_as.h:40
WS_DLL_PUBLIC int save_decode_as_entries(const char *app_name, const char *app_env_var_prefix, char **err)
Definition decode_as.c:392
void load_decode_as_entries(const char *app_env_var_prefix)
Definition decode_as.c:287
void(* decode_as_reset_all_func)(void)
Definition decode_as.h:52
WS_DLL_PUBLIC struct dissector_table * register_decode_as_next_proto(int proto, const char *table_name, const char *ui_name, build_label_func label_func)
Definition decode_as.c:60
bool(* decode_as_reset_func)(const char *name, const void *pattern)
Definition decode_as.h:48
void(* decode_as_build_changed_list_func)(decode_as_add_changed_list_func func, void *user_data)
Definition decode_as.h:54
void(* build_label_func)(packet_info *pinfo, char *result)
Definition decode_as.h:37
WS_DLL_PUBLIC GList * decode_as_list
Definition decode_as.h:125
Definition packet_info.h:43
Definition decode_as.h:76
const char * post_value_str
Definition decode_as.h:83
unsigned num_items
Definition decode_as.h:79
const char * table_name
Definition decode_as.h:78
decode_as_build_changed_list_func build_changed_list
Definition decode_as.h:89
const char * name
Definition decode_as.h:77
decode_as_reset_all_func reset_all
Definition decode_as.h:88
decode_as_value_t * values
Definition decode_as.h:81
unsigned default_index_value
Definition decode_as.h:80
decode_as_populate_list_func populate_list
Definition decode_as.h:84
decode_as_change_func change_value
Definition decode_as.h:86
decode_as_free_func free_func
Definition decode_as.h:87
decode_as_reset_func reset_value
Definition decode_as.h:85
const char * pre_value_str
Definition decode_as.h:82
Definition decode_as.h:61
unsigned num_values
Definition decode_as.h:63
build_valid_func * build_values
Definition decode_as.h:64
build_label_func label_func
Definition decode_as.h:62
Definition packet.c:97