Wireshark  4.3.0
The Wireshark network protocol analyzer
color_filters.h
Go to the documentation of this file.
1 /* color_filters.h
2  * Definitions for color filters
3  *
4  * Wireshark - Network traffic analyzer
5  * By Gerald Combs <gerald@wireshark.org>
6  * Copyright 1998 Gerald Combs
7  *
8  * SPDX-License-Identifier: GPL-2.0-or-later
9  */
10 #ifndef __COLOR_FILTERS_H__
11 #define __COLOR_FILTERS_H__
12 
13 #include <glib.h>
14 
15 #include "ws_symbol_export.h"
16 
17 #include <wsutil/color.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif /* __cplusplus */
22 
23 struct epan_dissect;
24 
25 #define COLORFILTERS_FILE_NAME "colorfilters"
26 
27 #define CONVERSATION_COLOR_PREFIX "___conversation_color_filter___"
32 /* Data for a color filter. */
33 typedef struct _color_filter {
34  char *filter_name; /* name of the filter */
35  char *filter_text; /* text of the filter expression */
36  color_t bg_color; /* background color for packets that match */
37  color_t fg_color; /* foreground color for packets that match */
38  bool disabled; /* set if the filter is disabled */
39 
40  /* only used inside of color_filters.c */
41  struct epan_dfilter *c_colorfilter; /* compiled filter expression */
42 
43  /* only used outside of color_filters.c (beside init) */
45 
52 typedef void (*color_filter_add_cb_func)(color_filter_t *colorf, void *user_data);
53 
55 WS_DLL_PUBLIC bool color_filters_init(char** err_msg, color_filter_add_cb_func add_cb);
56 
58 WS_DLL_PUBLIC bool color_filters_reload(char** err_msg, color_filter_add_cb_func add_cb);
59 
61 WS_DLL_PUBLIC void color_filters_cleanup(void);
62 
67 WS_DLL_PUBLIC bool color_filters_used(void);
68 
73 WS_DLL_PUBLIC bool tmp_color_filters_used(void);
74 
80 WS_DLL_PUBLIC char*
81 color_filters_get_tmp(uint8_t filt_nr);
82 
90 WS_DLL_PUBLIC bool
91 color_filters_set_tmp(uint8_t filt_nr, const char *filter, bool disabled, char **err_msg);
92 
98 WS_DLL_PUBLIC const color_filter_t *
99 color_filters_tmp_color(uint8_t filter_num);
100 
104 WS_DLL_PUBLIC bool
105 color_filters_reset_tmp(char **err_msg);
106 
107 /* Prime the epan_dissect_t with all the compiled
108  * color filters of the current filter list.
109  *
110  * @param the epan dissector details
111  */
112 WS_DLL_PUBLIC void color_filters_prime_edt(struct epan_dissect *edt);
113 
120 WS_DLL_PUBLIC bool
121 color_filters_use_hfid(int hfid);
122 
129 WS_DLL_PUBLIC bool
130 color_filters_use_proto(int proto_id);
131 
137 WS_DLL_PUBLIC const color_filter_t *
139 
145 WS_DLL_PUBLIC void color_filters_clone(void *user_data, color_filter_add_cb_func add_cb);
146 
155 WS_DLL_PUBLIC bool color_filters_import(const char *path, void *user_data, char **err_msg, color_filter_add_cb_func add_cb);
156 
164 WS_DLL_PUBLIC bool color_filters_read_globals(void *user_data, char** err_msg, color_filter_add_cb_func add_cb);
165 
166 
173 WS_DLL_PUBLIC bool color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, char** err_msg);
174 
181 WS_DLL_PUBLIC bool color_filters_write(GSList *cfl, char** err_msg);
182 
191 WS_DLL_PUBLIC bool color_filters_export(const char *path, GSList *cfl, bool only_selected, char** err_msg);
192 
202 WS_DLL_PUBLIC color_filter_t *color_filter_new(
203  const char *name, const char *filter_string,
204  color_t *bg_color, color_t *fg_color, bool disabled);
205 
210 WS_DLL_PUBLIC void color_filter_delete(color_filter_t *colorf);
211 
216 WS_DLL_PUBLIC void color_filter_list_delete(GSList **cfl);
217 
218 #ifdef __cplusplus
219 }
220 #endif /* __cplusplus */
221 
222 #endif
223 
224 /*
225  * Editor modelines - https://www.wireshark.org/tools/modelines.html
226  *
227  * Local variables:
228  * c-basic-offset: 4
229  * tab-width: 8
230  * indent-tabs-mode: nil
231  * End:
232  *
233  * vi: set shiftwidth=4 tabstop=8 expandtab:
234  * :indentSize=4:tabSize=8:noTabs=true:
235  */
WS_DLL_PUBLIC const color_filter_t * color_filters_colorize_packet(struct epan_dissect *edt)
Definition: color_filters.c:570
WS_DLL_PUBLIC void color_filters_clone(void *user_data, color_filter_add_cb_func add_cb)
Definition: color_filters.c:395
WS_DLL_PUBLIC bool color_filters_init(char **err_msg, color_filter_add_cb_func add_cb)
Definition: color_filters.c:351
void(* color_filter_add_cb_func)(color_filter_t *colorf, void *user_data)
Definition: color_filters.h:52
WS_DLL_PUBLIC const color_filter_t * color_filters_tmp_color(uint8_t filter_num)
Definition: color_filters.c:206
WS_DLL_PUBLIC bool color_filters_use_hfid(int hfid)
Definition: color_filters.c:537
WS_DLL_PUBLIC bool color_filters_import(const char *path, void *user_data, char **err_msg, color_filter_add_cb_func add_cb)
Definition: color_filters.c:797
WS_DLL_PUBLIC bool color_filters_read_globals(void *user_data, char **err_msg, color_filter_add_cb_func add_cb)
Definition: color_filters.c:751
WS_DLL_PUBLIC char * color_filters_get_tmp(uint8_t filt_nr)
Definition: color_filters.c:129
WS_DLL_PUBLIC bool color_filters_export(const char *path, GSList *cfl, bool only_selected, char **err_msg)
Definition: color_filters.c:895
WS_DLL_PUBLIC bool tmp_color_filters_used(void)
Definition: color_filters.c:497
WS_DLL_PUBLIC bool color_filters_set_tmp(uint8_t filt_nr, const char *filter, bool disabled, char **err_msg)
Definition: color_filters.c:153
WS_DLL_PUBLIC void color_filter_delete(color_filter_t *colorf)
Definition: color_filters.c:238
WS_DLL_PUBLIC void color_filter_list_delete(GSList **cfl)
Definition: color_filters.c:257
WS_DLL_PUBLIC bool color_filters_used(void)
Definition: color_filters.c:491
WS_DLL_PUBLIC bool color_filters_reload(char **err_msg, color_filter_add_cb_func add_cb)
Definition: color_filters.c:361
WS_DLL_PUBLIC bool color_filters_apply(GSList *tmp_cfl, GSList *edit_cfl, char **err_msg)
Definition: color_filters.c:455
WS_DLL_PUBLIC bool color_filters_write(GSList *cfl, char **err_msg)
Definition: color_filters.c:865
WS_DLL_PUBLIC bool color_filters_use_proto(int proto_id)
Definition: color_filters.c:560
WS_DLL_PUBLIC void color_filters_cleanup(void)
Definition: color_filters.c:373
WS_DLL_PUBLIC bool color_filters_reset_tmp(char **err_msg)
Definition: color_filters.c:223
WS_DLL_PUBLIC color_filter_t * color_filter_new(const char *name, const char *filter_string, color_t *bg_color, color_t *fg_color, bool disabled)
Definition: color_filters.c:61
Definition: color_filters.h:33
Definition: color.h:23
Definition: dfilter-int.h:35
Definition: epan_dissect.h:28