Wireshark 4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
tap.h
Go to the documentation of this file.
1
11#ifndef __TAP_H__
12#define __TAP_H__
13
14#include <epan/epan.h>
15#include <epan/packet_info.h>
16#include "ws_symbol_export.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif /* __cplusplus */
21
30
31typedef unsigned tap_flags_t;
32
33typedef void (*tap_reset_cb)(void *tapdata);
34typedef tap_packet_status (*tap_packet_cb)(void *tapdata, packet_info *pinfo, epan_dissect_t *edt, const void *data, tap_flags_t flags);
35typedef void (*tap_draw_cb)(void *tapdata);
36typedef void (*tap_finish_cb)(void *tapdata);
37
41#define TL_REQUIRES_NOTHING 0x00000000
42#define TL_REQUIRES_PROTO_TREE 0x00000001
43#define TL_REQUIRES_COLUMNS 0x00000002
44#define TL_REQUIRES_ERROR_PACKETS 0x00000004
58#define TL_IS_DISSECTOR_HELPER 0x00000008
62#define TL_IGNORE_DISPLAY_FILTER 0x00000010
63#define TL_DISPLAY_FILTER_IGNORED 0x00100000
66#define TL_IP_AGGREGATION_NULL 0x00000100
67#define TL_IP_AGGREGATION_ORI 0x00000200
68#define TL_IP_AGGREGATION_RESERVED 0x00000400
70typedef struct {
71 void (*register_tap_listener)(void); /* routine to call to register tap listener */
73
75WS_DLL_PUBLIC void tap_register_plugin(const tap_plugin *plug);
76
77/*
78 * Entry in the table of built-in taps to register.
79 */
80typedef struct _tap_reg {
81 const char *cb_name;
82 void (*cb_func)(void);
83} tap_reg_t;
84
85/*
86 * For all taps, call their register routines.
87 * Must be called after plugins_init(), if plugins are supported,
88 * and must be called only once in a program.
89 *
90 * XXX - should probably be handled by epan_init(), as the tap mechanism
91 * is part of libwireshark.
92 */
93WS_DLL_PUBLIC void register_all_tap_listeners(tap_reg_t const *tap_reg_listeners);
94
95extern void tap_init(void);
96
109WS_DLL_PUBLIC int register_tap(const char *name);
110
111/* Gets a GList of the tap names */
112WS_DLL_PUBLIC GList* get_tap_names(void);
113
117WS_DLL_PUBLIC int find_tap_id(const char *name);
118
139WS_DLL_PUBLIC void tap_queue_packet(int tap_id, packet_info *pinfo, const void *tap_specific_data);
140
142WS_DLL_PUBLIC void tap_build_interesting(epan_dissect_t *edt);
143
148extern void tap_queue_init(epan_dissect_t *edt);
149
154extern void tap_push_tapped_queue(epan_dissect_t *edt);
155
160WS_DLL_PUBLIC void reset_tap_listeners(void);
161
169WS_DLL_PUBLIC void draw_tap_listeners(bool draw_all);
170
247WS_DLL_PUBLIC GString *register_tap_listener(const char *tapname, void *tapdata,
248 const char *fstring, unsigned flags, tap_reset_cb tap_reset,
249 tap_packet_cb tap_packet, tap_draw_cb tap_draw,
250 tap_finish_cb tap_finish) G_GNUC_WARN_UNUSED_RESULT;
251
253WS_DLL_PUBLIC GString *set_tap_dfilter(void *tapdata, const char *fstring);
254
256WS_DLL_PUBLIC void tap_listeners_dfilter_recompile(void);
257
259WS_DLL_PUBLIC void remove_tap_listener(void *tapdata);
260
262WS_DLL_PUBLIC GString *set_tap_flags(void *tapdata, unsigned flags);
263
268WS_DLL_PUBLIC bool tap_listeners_require_dissection(void);
269
274WS_DLL_PUBLIC bool tap_listeners_require_columns(void);
275
277WS_DLL_PUBLIC bool have_tap_listener(int tap_id);
278
280WS_DLL_PUBLIC bool have_filtering_tap_listeners(void);
281
286
292WS_DLL_PUBLIC unsigned union_of_tap_listener_flags(void);
293
308WS_DLL_PUBLIC const void *fetch_tapped_data(int tap_id, int idx);
309
312extern void tap_cleanup(void);
313
314#ifdef __cplusplus
315}
316#endif /* __cplusplus */
317
318#endif /* __TAP_H__ */
Definition packet_info.h:43
Definition tap.h:80
Definition epan_dissect.h:28
Definition tap.h:70
WS_DLL_PUBLIC void tap_listeners_dfilter_recompile(void)
Definition tap.c:667
WS_DLL_PUBLIC void reset_tap_listeners(void)
Definition tap.c:435
void tap_queue_init(epan_dissect_t *edt)
Definition tap.c:286
WS_DLL_PUBLIC const void * fetch_tapped_data(int tap_id, int idx)
Definition tap.c:403
WS_DLL_PUBLIC bool tap_listeners_require_columns(void)
Definition tap.c:745
WS_DLL_PUBLIC unsigned union_of_tap_listener_flags(void)
Definition tap.c:811
WS_DLL_PUBLIC int register_tap(const char *name)
Definition tap.c:177
WS_DLL_PUBLIC bool tap_listeners_require_dissection(void)
Definition tap.c:725
WS_DLL_PUBLIC void tap_build_interesting(epan_dissect_t *edt)
Definition tap.c:263
WS_DLL_PUBLIC GString * set_tap_dfilter(void *tapdata, const char *fstring)
Definition tap.c:587
WS_DLL_PUBLIC bool have_filtering_tap_listeners(void)
Definition tap.c:783
WS_DLL_PUBLIC bool have_tap_listener(int tap_id)
Definition tap.c:765
WS_DLL_PUBLIC GString * register_tap_listener(const char *tapname, void *tapdata, const char *fstring, unsigned flags, tap_reset_cb tap_reset, tap_packet_cb tap_packet, tap_draw_cb tap_draw, tap_finish_cb tap_finish) G_GNUC_WARN_UNUSED_RESULT
Definition tap.c:536
WS_DLL_PUBLIC GString * set_tap_flags(void *tapdata, unsigned flags)
Definition tap.c:636
WS_DLL_PUBLIC void tap_register_plugin(const tap_plugin *plug)
WS_DLL_PUBLIC void draw_tap_listeners(bool draw_all)
Definition tap.c:458
WS_DLL_PUBLIC void remove_tap_listener(void *tapdata)
Definition tap.c:692
void tap_cleanup(void)
Definition tap.c:822
void tap_push_tapped_queue(epan_dissect_t *edt)
Definition tap.c:304
WS_DLL_PUBLIC void tap_queue_packet(int tap_id, packet_info *pinfo, const void *tap_specific_data)
Definition tap.c:229
tap_packet_status
Definition tap.h:25
@ TAP_PACKET_REDRAW
Definition tap.h:27
@ TAP_PACKET_FAILED
Definition tap.h:28
@ TAP_PACKET_DONT_REDRAW
Definition tap.h:26
WS_DLL_PUBLIC int find_tap_id(const char *name)
Definition tap.c:499
WS_DLL_PUBLIC void tap_listeners_load_field_references(epan_dissect_t *edt)
Definition tap.c:795