Wireshark 5.1.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
/builds/wireshark/wireshark/extcap_parser.h
Go to the documentation of this file.
1
9
10#ifndef __EXTCAP_PARSER_H__
11#define __EXTCAP_PARSER_H__
12
13#include <stdio.h>
14#include <glib.h>
15#include <string.h>
16
17#include "ui/iface_toolbar.h"
18
31
56
89
91#define ENUM_KEY(s) GUINT_TO_POINTER((unsigned)s)
92
96typedef struct _extcap_value {
97 int arg_num;
98 char *call;
99 char *display;
100 bool enabled;
102 char *parent;
104
112
114#define EXTCAP_PARAM_REQUIRED_SUFFICIENT "sufficient"
115
119typedef struct _extcap_arg {
121 char *call;
122 char *display;
123 char *tooltip;
125
128
131 bool save;
132 bool reload;
134 char *prefix;
135 char *regexp;
136 char *group;
137
142
143 char **pref_valptr;
145 /* XXX - device_name is not parsed or added by this file, but by the pref
146 * callback in extcap.c, and is simply the same ifname that is given by
147 * callers to extcap_get_if_configuration, the same for each extcap_arg
148 * in a list of extcap_args. It should probably be removed from here. */
149 GList *values;
151
152#define EXTCAP_CONTROL_NONE 0
153#define EXTCAP_CONTROL_TOOLBAR 1
154#define EXTCAP_CONTROL_QUIT 2
155
171
175typedef struct _extcap_dlt {
176 int number;
177 char *name;
178 char *display;
180
188
189#ifdef __cplusplus
190extern "C" {
191#endif
192
193/* Parse a string into a complex type */
194
203 const char *data);
204
210/* Free a complex */
212
213/* Copy a complex */
215extcap_copy_complex(const extcap_complex *comp);
216
217/* Print a complex value out for debug */
218
225
233
241
249
257
265
273
274/* compares the default value of an element with a given parameter */
275
284
294
296extcap_copy_arg(const extcap_arg *a);
297
304
312void extcap_free_arg_list(GList *a);
313
314
316
317/* Parse all sentences for args and values */
318
325GList * extcap_parse_args(char *output);
326
333GList * extcap_parse_values(char *output);
334
344GList * extcap_parse_interfaces(char *output, GList **control_items);
345
355GList * extcap_parse_dlts(char *output);
356
357#ifdef __cplusplus
358}
359#endif
360
361#endif
362
363/*
364 * Editor modelines - https://www.wireshark.org/tools/modelines.html
365 *
366 * Local variables:
367 * c-basic-offset: 4
368 * tab-width: 8
369 * indent-tabs-mode: nil
370 * End:
371 *
372 * vi: set shiftwidth=4 tabstop=8 expandtab:
373 * :indentSize=4:tabSize=8:noTabs=true:
374 */
struct _extcap_token_sentence extcap_token_sentence
A single tokenized extcap output sentence with its key/value parameter map.
extcap_arg_type
Data type of an extcap argument, controlling its GUI widget and value parsing.
Definition extcap_parser.h:35
@ EXTCAP_ARG_TIMESTAMP
Definition extcap_parser.h:54
@ EXTCAP_ARG_UNSIGNED
Definition extcap_parser.h:39
@ EXTCAP_ARG_LONG
Definition extcap_parser.h:40
@ EXTCAP_ARG_EDIT_SELECTOR
Definition extcap_parser.h:48
@ EXTCAP_ARG_UNKNOWN
Definition extcap_parser.h:37
@ EXTCAP_ARG_PASSWORD
Definition extcap_parser.h:45
@ EXTCAP_ARG_TABLE
Definition extcap_parser.h:51
@ EXTCAP_ARG_FOLDERSELECT
Definition extcap_parser.h:53
@ EXTCAP_ARG_MULTICHECK
Definition extcap_parser.h:50
@ EXTCAP_ARG_BOOLFLAG
Definition extcap_parser.h:43
@ EXTCAP_ARG_SELECTOR
Definition extcap_parser.h:47
@ EXTCAP_ARG_STRING
Definition extcap_parser.h:44
@ EXTCAP_ARG_RADIO
Definition extcap_parser.h:49
@ EXTCAP_ARG_INTEGER
Definition extcap_parser.h:38
@ EXTCAP_ARG_FILESELECT
Definition extcap_parser.h:52
@ EXTCAP_ARG_BOOLEAN
Definition extcap_parser.h:42
@ EXTCAP_ARG_DOUBLE
Definition extcap_parser.h:41
GList * extcap_parse_interfaces(char *output, GList **control_items)
Parse all sentences for interfaces.
Definition extcap_parser.c:969
struct _extcap_complex extcap_complex
A typed scalar value used to represent argument defaults and range bounds.
bool extcap_compare_is_default(extcap_arg *element, extcap_complex *test)
Compares an argument's default complex value with a test complex value.
Definition extcap_parser.c:42
unsigned extcap_complex_get_uint(extcap_complex *comp)
Retrieves an unsigned integer value from an extcap complex structure.
Definition extcap_parser.c:76
extcap_complex * extcap_parse_complex(extcap_arg_type complex_type, const char *data)
Parse a complex value from a string.
Definition extcap_parser.c:31
int extcap_complex_get_int(extcap_complex *comp)
Retrieves an integer value from an extcap complex structure.
Definition extcap_parser.c:69
char * extcap_complex_get_string(extcap_complex *comp)
Get the string value from an extcap complex structure.
Definition extcap_parser.c:110
struct _extcap_interface extcap_interface
Describes a single capture interface advertised by an extcap binary.
void extcap_free_arg_list(GList *a)
Free an entire arg list.
Definition extcap_parser.c:376
int64_t extcap_complex_get_long(extcap_complex *comp)
Retrieves a long value from an extcap complex structure.
Definition extcap_parser.c:82
void extcap_free_complex(extcap_complex *comp)
Free a complex value.
Definition extcap_parser.c:52
GList * extcap_parse_args(char *output)
Parses arguments from extcap output.
Definition extcap_parser.c:696
extcap_param_type
Token keys for key/value pairs within a parsed extcap sentence.
Definition extcap_parser.h:60
@ EXTCAP_PARAM_ROLE
Definition extcap_parser.h:87
@ EXTCAP_PARAM_ARG
Definition extcap_parser.h:66
@ EXTCAP_PARAM_PARENT
Definition extcap_parser.h:77
@ EXTCAP_PARAM_PREFIX
Definition extcap_parser.h:81
@ EXTCAP_PARAM_NAME
Definition extcap_parser.h:72
@ EXTCAP_PARAM_FILE_EXTENSION
Definition extcap_parser.h:75
@ EXTCAP_PARAM_VALIDATION
Definition extcap_parser.h:83
@ EXTCAP_PARAM_GROUP
Definition extcap_parser.h:76
@ EXTCAP_PARAM_REQUIRED
Definition extcap_parser.h:78
@ EXTCAP_PARAM_ARGNUM
Definition extcap_parser.h:62
@ EXTCAP_PARAM_ENABLED
Definition extcap_parser.h:73
@ EXTCAP_PARAM_HELP
Definition extcap_parser.h:85
@ EXTCAP_PARAM_RANGE
Definition extcap_parser.h:69
@ EXTCAP_PARAM_FILE_MUSTEXIST
Definition extcap_parser.h:74
@ EXTCAP_PARAM_DEFAULT
Definition extcap_parser.h:67
@ EXTCAP_PARAM_SAVE
Definition extcap_parser.h:82
@ EXTCAP_PARAM_VALUE
Definition extcap_parser.h:68
@ EXTCAP_PARAM_CONTROL
Definition extcap_parser.h:86
@ EXTCAP_PARAM_DISPLAY
Definition extcap_parser.h:64
@ EXTCAP_PARAM_TOOLTIP
Definition extcap_parser.h:70
@ EXTCAP_PARAM_VERSION
Definition extcap_parser.h:84
@ EXTCAP_PARAM_TYPE
Definition extcap_parser.h:65
@ EXTCAP_PARAM_PLACEHOLDER
Definition extcap_parser.h:71
@ EXTCAP_PARAM_CONFIGURABLE
Definition extcap_parser.h:80
@ EXTCAP_PARAM_RELOAD
Definition extcap_parser.h:79
@ EXTCAP_PARAM_UNKNOWN
Definition extcap_parser.h:61
@ EXTCAP_PARAM_CALL
Definition extcap_parser.h:63
bool extcap_complex_get_bool(extcap_complex *comp)
Retrieves the boolean value from an extcap complex structure.
Definition extcap_parser.c:100
void extcap_free_toolbar_control(iface_toolbar_control *control)
Free entire toolbar control structure.
Definition extcap_parser.c:358
double extcap_complex_get_double(extcap_complex *comp)
Retrieves the double value from an extcap_complex structure.
Definition extcap_parser.c:88
void extcap_free_arg(extcap_arg *a)
Free a single argument.
Definition extcap_parser.c:290
GList * extcap_parse_dlts(char *output)
Parse all sentences for DLT (Data Link Type) information.
Definition extcap_parser.c:1060
extcap_sentence_type
Identifies the type of a parsed extcap output sentence.
Definition extcap_parser.h:22
@ EXTCAP_SENTENCE_UNKNOWN
Definition extcap_parser.h:23
@ EXTCAP_SENTENCE_VALUE
Definition extcap_parser.h:25
@ EXTCAP_SENTENCE_DLT
Definition extcap_parser.h:28
@ EXTCAP_SENTENCE_EXTCAP
Definition extcap_parser.h:26
@ EXTCAP_SENTENCE_ARG
Definition extcap_parser.h:24
@ EXTCAP_SENTENCE_CONTROL
Definition extcap_parser.h:29
@ EXTCAP_SENTENCE_INTERFACE
Definition extcap_parser.h:27
struct _extcap_arg extcap_arg
A fully parsed extcap argument sentence with all its associated options.
char * extcap_get_complex_as_string(extcap_complex *comp)
Get a string representation of a complex type.
Definition extcap_parser.c:27
struct _extcap_dlt extcap_dlt
Describes a data link type (DLT) supported by an extcap interface.
GList * extcap_parse_values(char *output)
Parse all sentences for values.
Definition extcap_parser.c:719
struct _extcap_value extcap_value
A single selectable value option associated with a selector, radio, or multicheck argument.
struct _iface_toolbar_control iface_toolbar_control
Describes a single control widget within an interface toolbar.
A fully parsed extcap argument sentence with all its associated options.
Definition extcap_parser.h:119
bool reload
Definition extcap_parser.h:132
bool save
Definition extcap_parser.h:131
char * call
Definition extcap_parser.h:121
char * fileextension
Definition extcap_parser.h:126
char * prefix
Definition extcap_parser.h:134
char * device_name
Definition extcap_parser.h:144
char * tooltip
Definition extcap_parser.h:123
bool is_sufficient
Definition extcap_parser.h:130
extcap_arg_type arg_type
Definition extcap_parser.h:138
bool is_required
Definition extcap_parser.h:129
extcap_complex * range_start
Definition extcap_parser.h:139
extcap_complex * default_complex
Definition extcap_parser.h:141
char * regexp
Definition extcap_parser.h:135
GList * values
Definition extcap_parser.h:149
bool fileexists
Definition extcap_parser.h:127
char * display
Definition extcap_parser.h:122
int arg_num
Definition extcap_parser.h:120
bool configurable
Definition extcap_parser.h:133
char * placeholder
Definition extcap_parser.h:124
char * group
Definition extcap_parser.h:136
char ** pref_valptr
Definition extcap_parser.h:143
extcap_complex * range_end
Definition extcap_parser.h:140
A typed scalar value used to represent argument defaults and range bounds.
Definition extcap_parser.h:108
char * _val
Definition extcap_parser.h:110
extcap_arg_type complex_type
Definition extcap_parser.h:109
Describes a data link type (DLT) supported by an extcap interface.
Definition extcap_parser.h:175
char * display
Definition extcap_parser.h:178
int number
Definition extcap_parser.h:176
char * name
Definition extcap_parser.h:177
Describes a single capture interface advertised by an extcap binary.
Definition extcap_parser.h:159
char * help
Definition extcap_parser.h:163
char * bookmark_name
Definition extcap_parser.h:166
unsigned control
Definition extcap_parser.h:165
char * parent_call
Definition extcap_parser.h:167
char * call
Definition extcap_parser.h:160
char * extcap_path
Definition extcap_parser.h:164
char * display
Definition extcap_parser.h:161
char * version
Definition extcap_parser.h:162
extcap_sentence_type if_type
Definition extcap_parser.h:169
A single tokenized extcap output sentence with its key/value parameter map.
Definition extcap_parser.h:184
GHashTable * param_list
Definition extcap_parser.h:186
char * sentence
Definition extcap_parser.h:185
A single selectable value option associated with a selector, radio, or multicheck argument.
Definition extcap_parser.h:96
bool is_default
Definition extcap_parser.h:101
char * parent
Definition extcap_parser.h:102
bool enabled
Definition extcap_parser.h:100
int arg_num
Definition extcap_parser.h:97
char * display
Definition extcap_parser.h:99
char * call
Definition extcap_parser.h:98