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#pragma once
11#include "ws_symbol_export.h"
12
13#include "ftypes/ftypes.h"
14#include "packet_info.h"
15
16#ifdef __cplusplus
17extern "C" {
18#endif /* __cplusplus */
19
23#define MAX_DECODE_AS_PROMPT_LEN 200
24#define DECODE_AS_ENTRY "decode_as_entry"
25#define DECODE_AS_NONE "(none)"
26
27/*
28 * Filename of the "decode as" entry preferences
29 */
30#define DECODE_AS_ENTRIES_FILE_NAME "decode_as_entries"
31
32
34typedef void (*build_label_func)(packet_info *pinfo, char* result);
35
37typedef void * (*build_valid_func)(packet_info *pinfo);
38
39typedef void (*decode_as_add_to_list_func)(const char *table_name, const char *proto_name, void *value, void *user_data);
40typedef void (*decode_as_populate_list_func)(const char *table_name, decode_as_add_to_list_func add_to_list, void *ui_element);
41typedef void (*decode_as_free_func)(void *value);
42typedef void (*decode_as_add_changed_list_func)(void* data, void* user_data);
43
45typedef bool (*decode_as_reset_func)(const char *name, const void *pattern);
47typedef bool (*decode_as_change_func)(const char *name, const void *pattern, const void *handle, const char *list_name);
49typedef void (*decode_as_reset_all_func)(void);
51typedef void (*decode_as_build_changed_list_func)(decode_as_add_changed_list_func func, void* user_data);
52
63
89
91WS_DLL_PUBLIC void register_decode_as(decode_as_t* reg);
92
93/* Forward declaration to prevent requiring packet.h */
94struct dissector_table;
95
110WS_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);
111
112/* Walk though the dissector table and provide dissector_handle_t for each item in the table */
113
121WS_DLL_PUBLIC void decode_as_default_populate_list(const char *table_name, decode_as_add_to_list_func add_to_list, void *ui_element);
122/* Clear a FT_UINT32 value from dissector table list */
123WS_DLL_PUBLIC bool decode_as_default_reset(const char *name, const void *pattern);
124/* Add a FT_UINT32 value to dissector table list */
125WS_DLL_PUBLIC bool decode_as_default_change(const char *name, const void *pattern, const void *handle, const char *list_name);
126
130WS_DLL_PUBLIC GList *decode_as_list;
131
132/* Some useful utilities for Decode As */
133
138extern void load_decode_as_entries(const char* app_env_var_prefix);
139
142WS_DLL_PUBLIC int save_decode_as_entries(const char* app_name, const char* app_env_var_prefix, char** err);
143
146WS_DLL_PUBLIC void decode_clear_all(void);
147
150WS_DLL_PUBLIC void decode_cleanup(void);
151
174WS_DLL_PUBLIC void decode_build_reset_list (const char *table_name, ftenum_t selector_type,
175 void *key, void *value,
176 void *user_data);
177
178
179#ifdef __cplusplus
180}
181#endif /* __cplusplus */
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:47
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:37
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:49
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:45
void(* decode_as_build_changed_list_func)(decode_as_add_changed_list_func func, void *user_data)
Definition decode_as.h:51
WS_DLL_PUBLIC void decode_as_default_populate_list(const char *table_name, decode_as_add_to_list_func add_to_list, void *ui_element)
Populate a list with default decode-as values.
Definition decode_as.c:114
void(* build_label_func)(packet_info *pinfo, char *result)
Definition decode_as.h:34
WS_DLL_PUBLIC GList * decode_as_list
Definition decode_as.h:130
Definition packet_info.h:40
Definition decode_as.h:73
const char * post_value_str
Definition decode_as.h:80
unsigned num_items
Definition decode_as.h:76
const char * table_name
Definition decode_as.h:75
decode_as_build_changed_list_func build_changed_list
Definition decode_as.h:86
const char * name
Definition decode_as.h:74
decode_as_reset_all_func reset_all
Definition decode_as.h:85
decode_as_value_t * values
Definition decode_as.h:78
unsigned default_index_value
Definition decode_as.h:77
decode_as_populate_list_func populate_list
Definition decode_as.h:81
decode_as_change_func change_value
Definition decode_as.h:83
decode_as_free_func free_func
Definition decode_as.h:84
decode_as_reset_func reset_value
Definition decode_as.h:82
const char * pre_value_str
Definition decode_as.h:79
Definition decode_as.h:58
unsigned num_values
Definition decode_as.h:60
build_valid_func * build_values
Definition decode_as.h:61
build_label_func label_func
Definition decode_as.h:59
Definition packet.c:97