Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
funnel.h
Go to the documentation of this file.
1
13#pragma once
14#include <wireshark.h>
15#include <epan/stat_groups.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif /* __cplusplus */
20
21typedef struct _funnel_ops_id_t funnel_ops_id_t; /* Opaque pointer to ops instance */
23
24typedef void (*text_win_close_cb_t)(void*);
25
26typedef void (*funnel_dlg_cb_t)(char** user_input, void* data);
27typedef void (*funnel_dlg_cb_data_free_t)(void* data);
28
29typedef bool (*funnel_bt_cb_t)(funnel_text_window_t* tw, void* data);
30
31typedef void (* funnel_menu_callback)(void *);
32typedef void (* funnel_menu_callback_data_free)(void *);
33
34typedef struct _funnel_bt_t {
36 funnel_bt_cb_t func;
37 void* data;
38 void (*free_fcn)(void*);
39 void (*free_data_fcn)(void*);
41
42struct progdlg;
43
44typedef struct _funnel_ops_t {
45 funnel_ops_id_t *ops_id;
46 funnel_text_window_t* (*new_text_window)(funnel_ops_id_t *ops_id, const char* label);
47 void (*set_text)(funnel_text_window_t* win, const char* text);
48 void (*append_text)(funnel_text_window_t* win, const char* text);
49 void (*prepend_text)(funnel_text_window_t* win, const char* text);
50 void (*clear_text)(funnel_text_window_t* win);
51 const char* (*get_text)(funnel_text_window_t* win);
52 void (*set_close_cb)(funnel_text_window_t* win, text_win_close_cb_t cb, void* data);
53 void (*set_editable)(funnel_text_window_t* win, bool editable);
54 void (*destroy_text_window)(funnel_text_window_t* win);
55 void (*add_button)(funnel_text_window_t* win, funnel_bt_t* cb, const char* label);
56
57 void (*new_dialog)(funnel_ops_id_t *ops_id,
58 const char* title,
59 const char** field_names,
60 const char** field_values,
61 funnel_dlg_cb_t dlg_cb,
62 void* data,
63 funnel_dlg_cb_data_free_t dlg_cb_data_free);
64
65 void (*close_dialogs)(void);
66
67 void (*retap_packets)(funnel_ops_id_t *ops_id);
68 void (*copy_to_clipboard)(GString *str);
69
70 const char * (*get_filter)(funnel_ops_id_t *ops_id);
71 void (*set_filter)(funnel_ops_id_t *ops_id, const char* filter);
72 char * (*get_color_filter_slot)(uint8_t filt_nr);
73 void (*set_color_filter_slot)(uint8_t filt_nr, const char* filter);
74 bool (*open_file)(funnel_ops_id_t *ops_id, const char* fname, const char* filter, char** error);
75 void (*reload_packets)(funnel_ops_id_t *ops_id);
76 void (*redissect_packets)(funnel_ops_id_t *ops_id);
77 void (*reload_lua_plugins)(funnel_ops_id_t *ops_id);
78 void (*apply_filter)(funnel_ops_id_t *ops_id);
79
80 bool (*browser_open_url)(const char *url);
81 void (*browser_open_data_file)(const char *filename);
82
83 struct progdlg* (*new_progress_window)(funnel_ops_id_t *ops_id, const char* label, const char* task, bool terminate_is_stop, bool *stop_flag);
84 void (*update_progress)(struct progdlg*, float pr, const char* task);
85 void (*destroy_progress_window)(struct progdlg*);
87
93WS_DLL_PUBLIC const funnel_ops_t* funnel_get_funnel_ops(void);
94
100WS_DLL_PUBLIC bool funnel_menu_registered(void);
101
102WS_DLL_PUBLIC void funnel_register_menu(const char *name,
104 funnel_menu_callback callback,
105 void *callback_data,
106 funnel_menu_callback_data_free callback_data_free,
107 bool retap);
108
114void funnel_deregister_menus(funnel_menu_callback callback);
115
116typedef void (*funnel_registration_cb_t)(const char *name,
118 funnel_menu_callback callback,
119 void *callback_data,
120 bool retap);
121typedef void (*funnel_deregistration_cb_t)(funnel_menu_callback callback);
122
129WS_DLL_PUBLIC void funnel_reload_menus(funnel_deregistration_cb_t d_cb,
130 funnel_registration_cb_t r_cb);
131
139WS_DLL_PUBLIC void funnel_cleanup(void);
140
144typedef void (* funnel_packet_menu_callback)(void *, GPtrArray*);
145
149typedef void (*funnel_registration_packet_cb_t)(const char *name,
150 const char *required_fields,
152 void *callback_data,
153 bool retap);
154
161
171WS_DLL_PUBLIC void funnel_register_packet_menu(const char *name,
172 const char *required_fields,
174 void *callback_data,
175 bool retap);
176
182WS_DLL_PUBLIC bool funnel_packet_menus_modified(void);
183
184/*
185 * The functions below allow registering a funnel "console". A console is just a GUI
186 * dialog that has an input text widget, an output text widget, and for each user
187 * generated input it calls a callback to generate the corresponding output.
188 * Very simple... each console type has a name and an entry in the Tools menu to invoke it.
189 * Mainly used to present a Lua console to allow inspecting Lua internals and run Lua
190 * code using the embedded interpreter.
191 */
192
197typedef int (*funnel_console_eval_cb_t)(const char *console_input,
198 char **error_ptr,
199 char **error_hint,
200 void *callback_data);
201
205typedef void (*funnel_console_open_cb_t)(void (*print_func)(const char *, void *), void *print_data, void *callback_data);
206
210typedef void (*funnel_console_close_cb_t)(void *callback_data);
211
215typedef void (*funnel_console_data_free_cb_t)(void *callback_data);
216
220WS_DLL_PUBLIC void funnel_register_console_menu(const char *name,
224 void *callback_data,
226
230typedef void (*funnel_registration_console_cb_t)(const char *name,
234 void *callback_data);
235
242WS_DLL_PUBLIC void funnel_ops_init(const funnel_ops_t* ops, funnel_registration_cb_t r_cb, funnel_registration_console_cb_t rconsole_cb);
243
244#ifdef __cplusplus
245}
246#endif /* __cplusplus */
void(* funnel_packet_menu_callback)(void *, GPtrArray *)
Definition funnel.h:144
WS_DLL_PUBLIC bool funnel_menu_registered(void)
Checks if a menu is registered.
Definition funnel.c:303
WS_DLL_PUBLIC void funnel_register_console_menu(const char *name, funnel_console_eval_cb_t eval_cb, funnel_console_open_cb_t open_cb, funnel_console_close_cb_t close_cb, void *callback_data, funnel_console_data_free_cb_t free_data)
Definition funnel.c:253
void(* funnel_registration_console_cb_t)(const char *name, funnel_console_eval_cb_t eval_cb, funnel_console_open_cb_t open_cb, funnel_console_close_cb_t close_cb, void *callback_data)
Definition funnel.h:230
WS_DLL_PUBLIC void funnel_cleanup(void)
Cleans up resources used by the funnel subsystem.
Definition funnel.c:308
WS_DLL_PUBLIC bool funnel_packet_menus_modified(void)
Definition funnel.c:245
void(* funnel_console_open_cb_t)(void(*print_func)(const char *, void *), void *print_data, void *callback_data)
Definition funnel.h:205
WS_DLL_PUBLIC void funnel_register_packet_menu(const char *name, const char *required_fields, funnel_packet_menu_callback callback, void *callback_data, bool retap)
Entry point for Lua code to register a packet menu.
Definition funnel.c:191
WS_DLL_PUBLIC void funnel_ops_init(const funnel_ops_t *ops, funnel_registration_cb_t r_cb, funnel_registration_console_cb_t rconsole_cb)
Definition funnel.c:295
void funnel_deregister_menus(funnel_menu_callback callback)
Deregisters a menu callback.
Definition funnel.c:140
void(* funnel_console_data_free_cb_t)(void *callback_data)
Definition funnel.h:215
WS_DLL_PUBLIC const funnel_ops_t * funnel_get_funnel_ops(void)
Get the funnel operations.
Definition funnel.c:75
WS_DLL_PUBLIC void funnel_register_all_packet_menus(funnel_registration_packet_cb_t r_cb)
Definition funnel.c:230
WS_DLL_PUBLIC void funnel_reload_menus(funnel_deregistration_cb_t d_cb, funnel_registration_cb_t r_cb)
Reloads the menus by deregistering and registering them again using provided callbacks.
Definition funnel.c:166
int(* funnel_console_eval_cb_t)(const char *console_input, char **error_ptr, char **error_hint, void *callback_data)
Definition funnel.h:197
void(* funnel_console_close_cb_t)(void *callback_data)
Definition funnel.h:210
void(* funnel_registration_packet_cb_t)(const char *name, const char *required_fields, funnel_packet_menu_callback callback, void *callback_data, bool retap)
Definition funnel.h:149
enum register_stat_group_e register_stat_group_t
Definition funnel.h:34
Definition funnel_statistics.cpp:250
Definition funnel.h:44
Definition tap-funnel.c:21
Definition print.c:40
Definition progress_frame.h:31