Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
plugin_if.h
Go to the documentation of this file.
1
17#ifndef EPAN_PLUGIN_IF_H
18#define EPAN_PLUGIN_IF_H
19
20#include "ws_symbol_export.h"
21#include "ws_attributes.h"
22
23#include <glib.h>
24#include <epan/epan.h>
25#include <epan/frame_data.h>
26#include <epan/cfile.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif /* __cplusplus */
31
40
41
49typedef void (*ext_menubar_action_cb)(ext_menubar_gui_type gui_type, void *gui_object, void *user_data);
50
51
62
63
64typedef struct _ext_menubar_t ext_menubar_t;
91
99typedef void (*ext_toolbar_action_cb)(void *toolbar_item, void *item_data, void *user_data);
100
109
120
130
156
169
170
181
193 int proto_id, const char * menulabel, bool is_plugin);
194
206 ext_menu_t * menu, const char * parentmenu);
207
216WS_DLL_PUBLIC ext_menu_t * ext_menubar_add_submenu(
217 ext_menu_t * parent, const char *menulabel);
218
232WS_DLL_PUBLIC void ext_menubar_add_entry(
233 ext_menu_t * parent_menu,
234 const char *label,
235 const char *tooltip,
236 ext_menubar_action_cb callback,
237 void *user_data);
238
247WS_DLL_PUBLIC void ext_menubar_add_separator(ext_menu_t *parent_menu);
248
260WS_DLL_PUBLIC void ext_menubar_add_website(ext_menu_t * parent, const char *label,
261 const char *tooltip, const char *url);
262
270WS_DLL_PUBLIC ext_toolbar_t * ext_toolbar_register_toolbar(const char * toolbar_label);
271
279WS_DLL_PUBLIC void ext_toolbar_unregister_toolbar(ext_toolbar_t * toolbar);
280
288WS_DLL_PUBLIC void ext_toolbar_unregister_toolbar_by_name(const char * toolbar_name);
289
319 ext_toolbar_t * parent_bar,
321 const char *label,
322 const char *defvalue,
323 const char *tooltip,
324 bool capture_only,
325 GList * value_list,
326 bool is_required,
327 const char * valid_regex,
328 ext_toolbar_action_cb callback,
329 void *user_data);
330
340WS_DLL_PUBLIC GList * ext_toolbar_add_val(GList * entries, char * value, char * display, bool is_default);
341
351WS_DLL_PUBLIC void ext_toolbar_register_update_cb(ext_toolbar_t * entry, ext_toolbar_action_cb callback, void *item_data);
352
363WS_DLL_PUBLIC void ext_toolbar_update_value(ext_toolbar_t * entry, void *data, bool silent);
364
374WS_DLL_PUBLIC void ext_toolbar_update_data(ext_toolbar_t * entry, void *data, bool silent);
375
387WS_DLL_PUBLIC void ext_toolbar_update_data_by_index(ext_toolbar_t * entry, void *data, void *idx, bool silent);
388
400WS_DLL_PUBLIC void ext_toolbar_update_data_add_entry(ext_toolbar_t * entry, void *data, void *idx, bool silent);
401
414WS_DLL_PUBLIC void ext_toolbar_update_data_remove_entry(ext_toolbar_t * entry, void *data, void *idx, bool silent);
415
422WS_DLL_PUBLIC ext_toolbar_t * ext_toolbar_entry_by_label(const ext_toolbar_t * toolbar, const char * label);
423
429WS_DLL_PUBLIC void ext_toolbar_update_data_set_active(ext_toolbar_t * entry, bool status);
430
431/*
432 * Structure definition for the plugin_if_get_ws_info function
433 */
434
435typedef struct _ws_info_t
436{
437 bool ws_info_supported; /* false if no libpcap */
438 file_state cf_state; /* Current state of capture file */
439 char *cf_filename; /* Name of capture file */
440 uint32_t cf_count; /* Total number of frames */
441 uint32_t cf_framenr;
443} ws_info_t;
444
445
460
461
469typedef void (*plugin_if_gui_cb)(GHashTable * data_set);
470
477WS_DLL_PUBLIC void plugin_if_register_gui_cb(plugin_if_callback_t actionType, plugin_if_gui_cb callback);
478
484WS_DLL_PUBLIC void plugin_if_apply_filter(const char * filter_string, bool force);
485
493WS_DLL_PUBLIC void plugin_if_save_preference(const char * pref_module, const char * pref_key, const char * pref_value);
494
499WS_DLL_PUBLIC void plugin_if_goto_frame(uint32_t framenr);
500
505WS_DLL_PUBLIC void plugin_if_get_ws_info(ws_info_t ** ws_info);
506
507typedef void* (*plugin_if_frame_data_cb)(frame_data*, void*);
508
515WS_DLL_PUBLIC void* plugin_if_get_frame_data(plugin_if_frame_data_cb extract_cb, void *user_data);
516
517typedef void* (*plugin_if_capture_file_cb)(capture_file*, void*);
518
525WS_DLL_PUBLIC void* plugin_if_get_capture_file(plugin_if_capture_file_cb extract_cb, void* user_data);
526
533WS_DLL_PUBLIC GList * ext_menubar_get_entries(void);
534
541WS_DLL_PUBLIC GList * ext_toolbar_get_entries(void);
542
543#ifdef __cplusplus
544}
545#endif /* __cplusplus */
546
547#endif /* EPAN_PLUGIN_IF_H */
548
549/*
550 * Editor modelines
551 *
552 * Local Variables:
553 * c-basic-offset: 4
554 * tab-width: 8
555 * indent-tabs-mode: nil
556 * End:
557 *
558 * ex: set shiftwidth=4 tabstop=8 expandtab:
559 * :indentSize=4:tabSize=8:noTabs=true:
560 */
file_state
Lifecycle state of a capture file.
Definition cfile.h:30
DIAG_OFF_PEDANTIC struct _frame_data frame_data
Frame data structure.
WS_DLL_PUBLIC void ext_menubar_add_entry(ext_menu_t *parent_menu, const char *label, const char *tooltip, ext_menubar_action_cb callback, void *user_data)
Registers a new menubar entry.
Definition plugin_if.c:166
WS_DLL_PUBLIC void ext_toolbar_update_data(ext_toolbar_t *entry, void *data, bool silent)
Updates the entry data.
Definition plugin_if.c:473
ext_toolbar_update_type_t
Specifies the kind of update operation to apply to a toolbar item.
Definition plugin_if.h:161
@ EXT_TOOLBAR_UPDATE_DATA_ADD
Definition plugin_if.h:165
@ EXT_TOOLBAR_UPDATE_VALUE
Definition plugin_if.h:162
@ EXT_TOOLBAR_UPDATE_DATA_REMOVE
Definition plugin_if.h:166
@ EXT_TOOLBAR_UPDATE_DATA
Definition plugin_if.h:163
@ EXT_TOOLBAR_SET_ACTIVE
Definition plugin_if.h:167
@ EXT_TOOLBAR_UPDATE_DATABYINDEX
Definition plugin_if.h:164
ext_menubar_entry_t
Classifies a node within the menubar entry tree.
Definition plugin_if.h:56
@ EXT_MENUBAR_ITEM
Definition plugin_if.h:58
@ EXT_MENUBAR_URL
Definition plugin_if.h:60
@ EXT_MENUBAR_SEPARATOR
Definition plugin_if.h:59
@ EXT_MENUBAR_MENU
Definition plugin_if.h:57
WS_DLL_PUBLIC GList * ext_toolbar_add_val(GList *entries, char *value, char *display, bool is_default)
Adds a new value entry to an existing toolbar.
Definition plugin_if.c:376
WS_DLL_PUBLIC void ext_toolbar_register_update_cb(ext_toolbar_t *entry, ext_toolbar_action_cb callback, void *item_data)
Registers a callback for toolbar updates.
Definition plugin_if.c:415
WS_DLL_PUBLIC ext_menu_t * ext_menubar_add_submenu(ext_menu_t *parent, const char *menulabel)
Registers a new main menu.
Definition plugin_if.c:108
struct _ext_toolbar_update_t ext_toolbar_update_t
Carries the parameters for a single toolbar item update operation.
WS_DLL_PUBLIC void ext_menubar_add_separator(ext_menu_t *parent_menu)
Registers a new separator entry.
Definition plugin_if.c:184
WS_DLL_PUBLIC ext_toolbar_t * ext_toolbar_entry_by_label(const ext_toolbar_t *toolbar, const char *label)
Searches for and returns an entry from the toolbar with the given label.
Definition plugin_if.c:367
WS_DLL_PUBLIC void ext_toolbar_update_data_set_active(ext_toolbar_t *entry, bool status)
Sets the UI element for the given entry to the specified status.
Definition plugin_if.c:497
WS_DLL_PUBLIC void ext_toolbar_unregister_toolbar(ext_toolbar_t *toolbar)
Removes a toolbar from the system.
Definition plugin_if.c:253
struct _ext_toolbar_t ext_toolbar_t
Represents a node in the plugin-registered toolbar tree (bar or item).
WS_DLL_PUBLIC ext_menu_t * ext_menubar_register_menu(int proto_id, const char *menulabel, bool is_plugin)
Registers a new main menu.
Definition plugin_if.c:58
WS_DLL_PUBLIC void ext_toolbar_update_data_remove_entry(ext_toolbar_t *entry, void *data, void *idx, bool silent)
Removes an entry data by index.
Definition plugin_if.c:491
WS_DLL_PUBLIC void plugin_if_get_ws_info(ws_info_t **ws_info)
Takes a snapshot of status information from Wireshark.
Definition plugin_if.c:554
WS_DLL_PUBLIC ext_menu_t * ext_menubar_set_parentmenu(ext_menu_t *menu, const char *parentmenu)
Sets a parent menu for the user menu.
Definition plugin_if.c:97
WS_DLL_PUBLIC void plugin_if_register_gui_cb(plugin_if_callback_t actionType, plugin_if_gui_cb callback)
Registers a callback function for GUI-related actions.
Definition plugin_if.c:621
WS_DLL_PUBLIC void ext_toolbar_unregister_toolbar_by_name(const char *toolbar_name)
Removes a toolbar from the system by providing the name of the toolbar.
Definition plugin_if.c:232
WS_DLL_PUBLIC void ext_toolbar_update_value(ext_toolbar_t *entry, void *data, bool silent)
Updates the entry values.
Definition plugin_if.c:468
WS_DLL_PUBLIC void plugin_if_apply_filter(const char *filter_string, bool force)
Applies the given filter string as display filter.
Definition plugin_if.c:509
WS_DLL_PUBLIC void plugin_if_save_preference(const char *pref_module, const char *pref_key, const char *pref_value)
Saves a preference to the main preference storage.
Definition plugin_if.c:540
WS_DLL_PUBLIC void ext_menubar_add_website(ext_menu_t *parent, const char *label, const char *tooltip, const char *url)
Registers a entry for a website call.
Definition plugin_if.c:175
ext_menubar_t ext_menu_t
Definition plugin_if.h:65
ext_menubar_gui_type
Identifies the GUI toolkit hosting the menubar, passed to action callbacks.
Definition plugin_if.h:36
@ EXT_MENUBAR_GTK_GUI
Definition plugin_if.h:37
@ EXT_MENUBAR_QT_GUI
Definition plugin_if.h:38
WS_DLL_PUBLIC GList * ext_toolbar_get_entries(void)
Private Method for retrieving the toolbar entries.
Definition plugin_if.c:193
WS_DLL_PUBLIC ext_toolbar_t * ext_toolbar_add_entry(ext_toolbar_t *parent_bar, ext_toolbar_item_t type, const char *label, const char *defvalue, const char *tooltip, bool capture_only, GList *value_list, bool is_required, const char *valid_regex, ext_toolbar_action_cb callback, void *user_data)
Registers a new toolbar entry.
Definition plugin_if.c:308
WS_DLL_PUBLIC void * plugin_if_get_capture_file(plugin_if_capture_file_cb extract_cb, void *user_data)
Gets capture_file, data are extracted by extract_cb.
Definition plugin_if.c:604
WS_DLL_PUBLIC GList * ext_menubar_get_entries(void)
Private Method for retrieving the menubar entries.
Definition plugin_if.c:53
void(* ext_toolbar_action_cb)(void *toolbar_item, void *item_data, void *user_data)
Callback invoked when a toolbar item's value or button state changes.
Definition plugin_if.h:99
WS_DLL_PUBLIC ext_toolbar_t * ext_toolbar_register_toolbar(const char *toolbar_label)
Registers a toolbar.
Definition plugin_if.c:198
WS_DLL_PUBLIC void ext_toolbar_update_data_add_entry(ext_toolbar_t *entry, void *data, void *idx, bool silent)
Adds the entry data by index.
Definition plugin_if.c:485
WS_DLL_PUBLIC void * plugin_if_get_frame_data(plugin_if_frame_data_cb extract_cb, void *user_data)
Gets frame_data for current packet, data are extracted by extract_cb.
Definition plugin_if.c:587
ext_toolbar_item_t
Specifies the widget type for a toolbar control item.
Definition plugin_if.h:114
@ EXT_TOOLBAR_STRING
Definition plugin_if.h:117
@ EXT_TOOLBAR_BUTTON
Definition plugin_if.h:116
@ EXT_TOOLBAR_SELECTOR
Definition plugin_if.h:118
@ EXT_TOOLBAR_BOOLEAN
Definition plugin_if.h:115
WS_DLL_PUBLIC void plugin_if_goto_frame(uint32_t framenr)
Jumps to the given frame number.
Definition plugin_if.c:526
ext_toolbar_entry_t
Classifies a node within the toolbar entry tree.
Definition plugin_if.h:105
@ EXT_TOOLBAR_BAR
Definition plugin_if.h:106
@ EXT_TOOLBAR_ITEM
Definition plugin_if.h:107
struct _ext_toolbar_value_t ext_toolbar_value_t
A single selectable value entry for a selector-type toolbar item.
void(* plugin_if_gui_cb)(GHashTable *data_set)
Callback function type for GUI-related actions.
Definition plugin_if.h:469
plugin_if_callback_t
Identifies a GUI action that a plugin can invoke through the plugin interface callback mechanism.
Definition plugin_if.h:450
@ PLUGIN_IF_FILTER_ACTION_APPLY
Definition plugin_if.h:451
@ PLUGIN_IF_GOTO_FRAME
Definition plugin_if.h:454
@ PLUGIN_IF_GET_WS_INFO
Definition plugin_if.h:455
@ PLUGIN_IF_REMOVE_TOOLBAR
Definition plugin_if.h:458
@ PLUGIN_IF_GET_CAPTURE_FILE
Definition plugin_if.h:457
@ PLUGIN_IF_FILTER_ACTION_PREPARE
Definition plugin_if.h:452
@ PLUGIN_IF_PREFERENCE_SAVE
Definition plugin_if.h:453
@ PLUGIN_IF_GET_FRAME_DATA
Definition plugin_if.h:456
void(* ext_menubar_action_cb)(ext_menubar_gui_type gui_type, void *gui_object, void *user_data)
Callback invoked when a menubar item is activated.
Definition plugin_if.h:49
WS_DLL_PUBLIC void ext_toolbar_update_data_by_index(ext_toolbar_t *entry, void *data, void *idx, bool silent)
Updates the entry data by index.
Definition plugin_if.c:479
Represents a capture file and its associated metadata.
Definition cfile.h:84
Represents a node in the plugin-registered menubar tree (menu, item, separator, or URL).
Definition plugin_if.h:72
char * parent_menu
Definition plugin_if.h:89
int proto
Definition plugin_if.h:75
ext_menubar_entry_t type
Definition plugin_if.h:73
ext_menu_t * parent
Definition plugin_if.h:74
char * name
Definition plugin_if.h:80
unsigned submenu_cnt
Definition plugin_if.h:77
ext_menubar_action_cb callback
Definition plugin_if.h:87
GList * children
Definition plugin_if.h:76
unsigned item_cnt
Definition plugin_if.h:78
char * tooltip
Definition plugin_if.h:83
bool is_plugin
Definition plugin_if.h:84
char * label
Definition plugin_if.h:81
void * user_data
Definition plugin_if.h:85
Represents a node in the plugin-registered toolbar tree (bar or item).
Definition plugin_if.h:135
char * regex
Definition plugin_if.h:152
unsigned item_cnt
Definition plugin_if.h:140
char * tooltip
Definition plugin_if.h:144
unsigned submenu_cnt
Definition plugin_if.h:139
ext_toolbar_entry_t type
Definition plugin_if.h:136
char * name
Definition plugin_if.h:142
char * defvalue
Definition plugin_if.h:143
bool is_required
Definition plugin_if.h:147
GList * values
Definition plugin_if.h:151
bool capture_only
Definition plugin_if.h:148
GList * children
Definition plugin_if.h:138
void * user_data
Definition plugin_if.h:145
ext_toolbar_action_cb callback
Definition plugin_if.h:154
ext_toolbar_item_t item_type
Definition plugin_if.h:149
Carries the parameters for a single toolbar item update operation.
Definition plugin_if.h:175
void * user_data
Definition plugin_if.h:178
void * data_index
Definition plugin_if.h:179
bool silent
Definition plugin_if.h:177
ext_toolbar_update_type_t type
Definition plugin_if.h:176
A single selectable value entry for a selector-type toolbar item.
Definition plugin_if.h:125
char * value
Definition plugin_if.h:126
bool is_default
Definition plugin_if.h:128
char * display
Definition plugin_if.h:127
Definition plugin_if.h:436
bool frame_passed_dfilter
Definition plugin_if.h:442
uint32_t cf_framenr
Definition plugin_if.h:441
Represents a preference module grouping related preferences under a named, hierarchical entry in the ...
Definition prefs-int.h:27
#define ws_info(...)
Log an "info" level entry without source context.
Definition wslog.h:603