summaryrefslogtreecommitdiffstats
path: root/ui/dissect_opts.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/dissect_opts.h')
-rw-r--r--ui/dissect_opts.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/ui/dissect_opts.h b/ui/dissect_opts.h
new file mode 100644
index 0000000..6c2c444
--- /dev/null
+++ b/ui/dissect_opts.h
@@ -0,0 +1,87 @@
+/** @file
+ *
+ * Dissection options (parameters that affect dissection)
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+
+/** @file
+ *
+ * Dissection options (parameters that affect dissection)
+ *
+ */
+
+#ifndef __DISSECT_OPTS_H__
+#define __DISSECT_OPTS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * Long options.
+ * We do not currently have long options corresponding to all short
+ * options; we should probably pick appropriate option names for them.
+ */
+
+#define LONGOPT_DISABLE_PROTOCOL LONGOPT_BASE_DISSECTOR+1
+#define LONGOPT_ENABLE_HEURISTIC LONGOPT_BASE_DISSECTOR+2
+#define LONGOPT_DISABLE_HEURISTIC LONGOPT_BASE_DISSECTOR+3
+#define LONGOPT_ENABLE_PROTOCOL LONGOPT_BASE_DISSECTOR+4
+#define LONGOPT_ONLY_PROTOCOLS LONGOPT_BASE_DISSECTOR+5
+#define LONGOPT_DISABLE_ALL_PROTOCOLS LONGOPT_BASE_DISSECTOR+6
+
+/*
+ * Options for dissecting common to all dissecting programs.
+ */
+#define LONGOPT_DISSECT_COMMON \
+ {"disable-protocol", ws_required_argument, NULL, LONGOPT_DISABLE_PROTOCOL }, \
+ {"enable-heuristic", ws_required_argument, NULL, LONGOPT_ENABLE_HEURISTIC }, \
+ {"disable-heuristic", ws_required_argument, NULL, LONGOPT_DISABLE_HEURISTIC }, \
+ {"enable-protocol", ws_required_argument, NULL, LONGOPT_ENABLE_PROTOCOL }, \
+ {"only-protocols", ws_required_argument, NULL, LONGOPT_ONLY_PROTOCOLS }, \
+ {"disable-all-protocols", ws_no_argument, NULL, LONGOPT_DISABLE_ALL_PROTOCOLS }, \
+
+#define OPTSTRING_DISSECT_COMMON \
+ "d:K:nN:t:u:"
+
+/** Capture options coming from user interface */
+typedef struct dissect_options_tag {
+ ts_type time_format;
+ ts_precision time_precision;
+ GSList *enable_protocol_slist; //enable protocols that are disabled by default
+ GSList *disable_protocol_slist;
+ GSList *enable_heur_slist;
+ GSList *disable_heur_slist;
+} dissect_options;
+
+extern dissect_options global_dissect_options;
+
+/*
+ * Handle a command line option.
+ * Returns TRUE if the option is valid, FALSE if not; an error message
+ * is reported with cmdarg_err() if it's not valid.
+ */
+extern gboolean
+dissect_opts_handle_opt(int opt, char *optarg_str_p);
+
+/*
+ * Set up disabled protocols and enabled/disabled heuristic protocols
+ * as per specified command-line options.
+ *
+ * Returns TRUE if all specified heuristic protocols exist, FALSE
+ * otherwise.
+ */
+extern gboolean
+setup_enabled_and_disabled_protocols(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* dissect_opts.h */