aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/CMakeLists.txt2
-rw-r--r--ui/cli/tap-camelsrt.c2
-rw-r--r--ui/cli/tap-diameter-avp.c2
-rw-r--r--ui/cli/tap-endpoints.c2
-rw-r--r--ui/cli/tap-exportobject.c2
-rw-r--r--ui/cli/tap-hosts.c2
-rw-r--r--ui/cli/tap-httpstat.c2
-rw-r--r--ui/cli/tap-icmpstat.c2
-rw-r--r--ui/cli/tap-icmpv6stat.c2
-rw-r--r--ui/cli/tap-iousers.c2
-rw-r--r--ui/cli/tap-protocolinfo.c2
-rw-r--r--ui/cli/tap-protohierstat.c2
-rw-r--r--ui/cli/tap-rpcprogs.c2
-rw-r--r--ui/cli/tap-rtd.c2
-rw-r--r--ui/cli/tap-rtspstat.c2
-rw-r--r--ui/cli/tap-sctpchunkstat.c2
-rw-r--r--ui/cli/tap-simple_stattable.c2
-rw-r--r--ui/cli/tap-sipstat.c2
-rw-r--r--ui/cli/tap-smbsids.c2
-rw-r--r--ui/cli/tap-srt.c2
-rw-r--r--ui/cli/tap-sv.c2
-rw-r--r--ui/cli/tap-wspstat.c2
-rw-r--r--ui/clopts_common.c121
-rw-r--r--ui/clopts_common.h37
-rw-r--r--ui/cmdarg_err.c66
-rw-r--r--ui/cmdarg_err.h47
-rw-r--r--ui/commandline.c4
-rw-r--r--ui/decode_as_utils.c2
-rw-r--r--ui/dissect_opts.c4
-rw-r--r--ui/failure_message.c2
-rw-r--r--ui/qt/main.cpp4
31 files changed, 302 insertions, 29 deletions
diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt
index b73e73c746..60d9bc9b81 100644
--- a/ui/CMakeLists.txt
+++ b/ui/CMakeLists.txt
@@ -11,6 +11,8 @@ set(NONGENERATED_UI_SRC
alert_box.c
capture.c
capture_ui_utils.c
+ clopts_common.c
+ cmdarg_err.c
commandline.c
console.c
decode_as_utils.c
diff --git a/ui/cli/tap-camelsrt.c b/ui/cli/tap-camelsrt.c
index 4543b24d8e..f3d81269e6 100644
--- a/ui/cli/tap-camelsrt.c
+++ b/ui/cli/tap-camelsrt.c
@@ -24,7 +24,7 @@
#include "epan/timestats.h"
#include "epan/stat_tap_ui.h"
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_camelsrt(void);
diff --git a/ui/cli/tap-diameter-avp.c b/ui/cli/tap-diameter-avp.c
index 26956ca993..f607ae2369 100644
--- a/ui/cli/tap-diameter-avp.c
+++ b/ui/cli/tap-diameter-avp.c
@@ -31,7 +31,7 @@
#include <glib.h>
#include <wsutil/strtoi.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <epan/packet_info.h>
#include <epan/tap.h>
diff --git a/ui/cli/tap-endpoints.c b/ui/cli/tap-endpoints.c
index 2becc36a79..6bf2e3c744 100644
--- a/ui/cli/tap-endpoints.c
+++ b/ui/cli/tap-endpoints.c
@@ -18,7 +18,7 @@
#include <epan/tap.h>
#include <epan/stat_tap_ui.h>
#include <epan/conversation_table.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <ui/cli/tshark-tap.h>
typedef struct _endpoints_t {
diff --git a/ui/cli/tap-exportobject.c b/ui/cli/tap-exportobject.c
index a8c7d48e95..b4d82d2698 100644
--- a/ui/cli/tap-exportobject.c
+++ b/ui/cli/tap-exportobject.c
@@ -18,7 +18,7 @@
#include <string.h>
#include <wsutil/file_util.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <epan/packet_info.h>
#include <epan/packet.h>
diff --git a/ui/cli/tap-hosts.c b/ui/cli/tap-hosts.c
index 87339c23bf..00c45ab8da 100644
--- a/ui/cli/tap-hosts.c
+++ b/ui/cli/tap-hosts.c
@@ -21,7 +21,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/addr_resolv.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_hosts(void);
diff --git a/ui/cli/tap-httpstat.c b/ui/cli/tap-httpstat.c
index 0df566ae21..184c0d98f2 100644
--- a/ui/cli/tap-httpstat.c
+++ b/ui/cli/tap-httpstat.c
@@ -22,7 +22,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/dissectors/packet-http.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_httpstat(void);
diff --git a/ui/cli/tap-icmpstat.c b/ui/cli/tap-icmpstat.c
index dca35a6f86..d1dfebb77f 100644
--- a/ui/cli/tap-icmpstat.c
+++ b/ui/cli/tap-icmpstat.c
@@ -28,7 +28,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/dissectors/packet-icmp.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_icmpstat(void);
diff --git a/ui/cli/tap-icmpv6stat.c b/ui/cli/tap-icmpv6stat.c
index ff51397557..04bcf973a8 100644
--- a/ui/cli/tap-icmpv6stat.c
+++ b/ui/cli/tap-icmpv6stat.c
@@ -29,7 +29,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/dissectors/packet-icmp.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_icmpv6stat(void);
diff --git a/ui/cli/tap-iousers.c b/ui/cli/tap-iousers.c
index b375bd38b7..3da2dae8e2 100644
--- a/ui/cli/tap-iousers.c
+++ b/ui/cli/tap-iousers.c
@@ -16,7 +16,7 @@
#include <string.h>
#include <epan/packet.h>
#include <epan/timestamp.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <ui/cli/tshark-tap.h>
typedef struct _io_users_t {
diff --git a/ui/cli/tap-protocolinfo.c b/ui/cli/tap-protocolinfo.c
index 4f6c6ee01a..e0c777b670 100644
--- a/ui/cli/tap-protocolinfo.c
+++ b/ui/cli/tap-protocolinfo.c
@@ -21,7 +21,7 @@
#include <epan/tap.h>
#include <epan/stat_tap_ui.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_protocolinfo(void);
diff --git a/ui/cli/tap-protohierstat.c b/ui/cli/tap-protohierstat.c
index fd51f03c88..8009874725 100644
--- a/ui/cli/tap-protohierstat.c
+++ b/ui/cli/tap-protohierstat.c
@@ -20,7 +20,7 @@
#include <epan/tap.h>
#include <epan/stat_tap_ui.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_protohierstat(void);
diff --git a/ui/cli/tap-rpcprogs.c b/ui/cli/tap-rpcprogs.c
index 59d0292428..8581850b2e 100644
--- a/ui/cli/tap-rpcprogs.c
+++ b/ui/cli/tap-rpcprogs.c
@@ -25,7 +25,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/dissectors/packet-rpc.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#define MICROSECS_PER_SEC 1000000
#define NANOSECS_PER_SEC 1000000000
diff --git a/ui/cli/tap-rtd.c b/ui/cli/tap-rtd.c
index d86fded52c..ecfb58d956 100644
--- a/ui/cli/tap-rtd.c
+++ b/ui/cli/tap-rtd.c
@@ -19,7 +19,7 @@
#include <epan/rtd_table.h>
#include <epan/timestamp.h>
#include <epan/stat_tap_ui.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <ui/cli/tshark-tap.h>
typedef struct _rtd_t {
diff --git a/ui/cli/tap-rtspstat.c b/ui/cli/tap-rtspstat.c
index cc5d58547f..3db29ceaf6 100644
--- a/ui/cli/tap-rtspstat.c
+++ b/ui/cli/tap-rtspstat.c
@@ -25,7 +25,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/dissectors/packet-rtsp.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_rtspstat(void);
diff --git a/ui/cli/tap-sctpchunkstat.c b/ui/cli/tap-sctpchunkstat.c
index 8ff1267380..cfb3d5376a 100644
--- a/ui/cli/tap-sctpchunkstat.c
+++ b/ui/cli/tap-sctpchunkstat.c
@@ -24,7 +24,7 @@
#include <epan/dissectors/packet-sctp.h>
#include <epan/to_str.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_sctpstat(void);
diff --git a/ui/cli/tap-simple_stattable.c b/ui/cli/tap-simple_stattable.c
index 9f7cce6ff6..5d03022c08 100644
--- a/ui/cli/tap-simple_stattable.c
+++ b/ui/cli/tap-simple_stattable.c
@@ -16,7 +16,7 @@
#include <epan/packet.h>
#include <epan/timestamp.h>
#include <epan/stat_tap_ui.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <ui/cli/tshark-tap.h>
typedef struct _table_stat_t {
diff --git a/ui/cli/tap-sipstat.c b/ui/cli/tap-sipstat.c
index 1fd5fa7674..988da5a89a 100644
--- a/ui/cli/tap-sipstat.c
+++ b/ui/cli/tap-sipstat.c
@@ -24,7 +24,7 @@
#include <epan/value_string.h>
#include <epan/dissectors/packet-sip.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_sipstat(void);
diff --git a/ui/cli/tap-smbsids.c b/ui/cli/tap-smbsids.c
index 0a87faffd8..039a5acc49 100644
--- a/ui/cli/tap-smbsids.c
+++ b/ui/cli/tap-smbsids.c
@@ -23,7 +23,7 @@
#include <epan/value_string.h>
#include <epan/dissectors/packet-smb.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_smbsids(void);
diff --git a/ui/cli/tap-srt.c b/ui/cli/tap-srt.c
index b9820ff8e5..5231994467 100644
--- a/ui/cli/tap-srt.c
+++ b/ui/cli/tap-srt.c
@@ -17,7 +17,7 @@
#include <epan/srt_table.h>
#include <epan/timestamp.h>
#include <epan/stat_tap_ui.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include <ui/cli/tshark-tap.h>
#define NANOSECS_PER_SEC 1000000000
diff --git a/ui/cli/tap-sv.c b/ui/cli/tap-sv.c
index 3c434072cd..5899777711 100644
--- a/ui/cli/tap-sv.c
+++ b/ui/cli/tap-sv.c
@@ -22,7 +22,7 @@
#include <epan/stat_tap_ui.h>
#include <epan/dissectors/packet-sv.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_sv(void);
diff --git a/ui/cli/tap-wspstat.c b/ui/cli/tap-wspstat.c
index f6ecd16cf1..3f8c21c8b3 100644
--- a/ui/cli/tap-wspstat.c
+++ b/ui/cli/tap-wspstat.c
@@ -27,7 +27,7 @@
#include <epan/value_string.h>
#include <epan/dissectors/packet-wsp.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
void register_tap_listener_wspstat(void);
diff --git a/ui/clopts_common.c b/ui/clopts_common.c
new file mode 100644
index 0000000000..464ab18697
--- /dev/null
+++ b/ui/clopts_common.c
@@ -0,0 +1,121 @@
+/* clopts_common.c
+ * Handle command-line arguments common to various programs
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <errno.h>
+
+#include <wsutil/strtoi.h>
+#include <ui/cmdarg_err.h>
+
+#include "clopts_common.h"
+
+int
+get_natural_int(const char *string, const char *name)
+{
+ gint32 number;
+
+ if (!ws_strtoi32(string, NULL, &number)) {
+ if (errno == EINVAL) {
+ cmdarg_err("The specified %s \"%s\" isn't a decimal number", name, string);
+ exit(1);
+ }
+ if (number < 0) {
+ cmdarg_err("The specified %s \"%s\" is a negative number", name, string);
+ exit(1);
+ }
+ cmdarg_err("The specified %s \"%s\" is too large (greater than %d)",
+ name, string, number);
+ exit(1);
+ }
+ if (number < 0) {
+ cmdarg_err("The specified %s \"%s\" is a negative number", name, string);
+ exit(1);
+ }
+ return (int)number;
+}
+
+int
+get_positive_int(const char *string, const char *name)
+{
+ int number;
+
+ number = get_natural_int(string, name);
+
+ if (number == 0) {
+ cmdarg_err("The specified %s is zero", name);
+ exit(1);
+ }
+
+ return number;
+}
+
+guint32
+get_guint32(const char *string, const char *name)
+{
+ guint32 number;
+
+ if (!ws_strtou32(string, NULL, &number)) {
+ if (errno == EINVAL) {
+ cmdarg_err("The specified %s \"%s\" isn't a decimal number", name, string);
+ exit(1);
+ }
+ cmdarg_err("The specified %s \"%s\" is too large (greater than %d)",
+ name, string, number);
+ exit(1);
+ }
+ return number;
+}
+
+guint32
+get_nonzero_guint32(const char *string, const char *name)
+{
+ guint32 number;
+
+ number = get_guint32(string, name);
+
+ if (number == 0) {
+ cmdarg_err("The specified %s is zero", name);
+ exit(1);
+ }
+
+ return number;
+}
+
+double
+get_positive_double(const char *string, const char *name)
+{
+ double number = g_ascii_strtod(string, NULL);
+
+ if (errno == EINVAL) {
+ cmdarg_err("The specified %s \"%s\" isn't a floating point number", name, string);
+ exit(1);
+ }
+ if (number < 0.0) {
+ cmdarg_err("The specified %s \"%s\" is a negative number", name, string);
+ exit(1);
+ }
+
+ return number;
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
diff --git a/ui/clopts_common.h b/ui/clopts_common.h
new file mode 100644
index 0000000000..6b8a6504a2
--- /dev/null
+++ b/ui/clopts_common.h
@@ -0,0 +1,37 @@
+/* clopts_common.h
+ * Handle command-line arguments common to various programs
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef __UI_CLOPTS_COMMON_H__
+#define __UI_CLOPTS_COMMON_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+extern int
+get_natural_int(const char *string, const char *name);
+
+extern int
+get_positive_int(const char *string, const char *name);
+
+extern guint32
+get_guint32(const char *string, const char *name);
+
+extern guint32
+get_nonzero_guint32(const char *string, const char *name);
+
+extern double
+get_positive_double(const char *string, const char *name);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __UI_CLOPTS_COMMON_H__ */
diff --git a/ui/cmdarg_err.c b/ui/cmdarg_err.c
new file mode 100644
index 0000000000..889fa603c6
--- /dev/null
+++ b/ui/cmdarg_err.c
@@ -0,0 +1,66 @@
+/* cmdarg_err.c
+ * Routines to report command-line argument errors.
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "config.h"
+
+#include "cmdarg_err.h"
+
+static void (*print_err)(const char *, va_list ap);
+static void (*print_err_cont)(const char *, va_list ap);
+
+/*
+ * Set the reporting functions for error messages.
+ */
+void
+cmdarg_err_init(void (*err)(const char *, va_list),
+ void (*err_cont)(const char *, va_list))
+{
+ print_err = err;
+ print_err_cont = err_cont;
+}
+
+/*
+ * Report an error in command-line arguments.
+ */
+void
+cmdarg_err(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ print_err(fmt, ap);
+ va_end(ap);
+}
+
+/*
+ * Report additional information for an error in command-line arguments.
+ */
+void
+cmdarg_err_cont(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ print_err_cont(fmt, ap);
+ va_end(ap);
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
diff --git a/ui/cmdarg_err.h b/ui/cmdarg_err.h
new file mode 100644
index 0000000000..96328a0b66
--- /dev/null
+++ b/ui/cmdarg_err.h
@@ -0,0 +1,47 @@
+/* cmdarg_err.h
+ * Declarations of routines to report command-line argument errors.
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef __UI_CMDARG_ERR_H__
+#define __UI_CMDARG_ERR_H__
+
+#include <stdarg.h>
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * Set the reporting functions for error messages.
+ */
+extern void
+cmdarg_err_init(void (*err)(const char *, va_list),
+ void (*err_cont)(const char *, va_list));
+
+/*
+ * Report an error in command-line arguments.
+ */
+extern void
+cmdarg_err(const char *fmt, ...)
+ G_GNUC_PRINTF(1, 2);
+
+/*
+ * Report additional information for an error in command-line arguments.
+ */
+extern void
+cmdarg_err_cont(const char *fmt, ...)
+ G_GNUC_PRINTF(1, 2);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __UI_CMDARG_ERR_H__ */
diff --git a/ui/commandline.c b/ui/commandline.c
index fc3c375a03..7855661654 100644
--- a/ui/commandline.c
+++ b/ui/commandline.c
@@ -26,8 +26,8 @@
#include <version_info.h>
-#include <wsutil/clopts_common.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/clopts_common.h>
+#include <ui/cmdarg_err.h>
#include <wsutil/filesystem.h>
#include <epan/ex-opt.h>
diff --git a/ui/decode_as_utils.c b/ui/decode_as_utils.c
index 3315623c16..30ca1096e1 100644
--- a/ui/decode_as_utils.c
+++ b/ui/decode_as_utils.c
@@ -23,7 +23,7 @@
#include "wsutil/file_util.h"
#include "wsutil/filesystem.h"
-#include "wsutil/cmdarg_err.h"
+#include "ui/cmdarg_err.h"
#include "version_info.h"
/* XXX - We might want to switch this to a UAT */
diff --git a/ui/dissect_opts.c b/ui/dissect_opts.c
index c6aa77165c..bfcf1c928f 100644
--- a/ui/dissect_opts.c
+++ b/ui/dissect_opts.c
@@ -30,8 +30,8 @@
#include <epan/dissectors/read_keytab_file.h>
#endif
-#include <wsutil/clopts_common.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/clopts_common.h>
+#include <ui/cmdarg_err.h>
#include <wsutil/file_util.h>
#include "ui/dissect_opts.h"
diff --git a/ui/failure_message.c b/ui/failure_message.c
index e75e2ce9bc..5a89c3caed 100644
--- a/ui/failure_message.c
+++ b/ui/failure_message.c
@@ -16,7 +16,7 @@
#include <wiretap/wtap.h>
#include <wsutil/filesystem.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/cmdarg_err.h>
#include "ui/failure_message.h"
diff --git a/ui/qt/main.cpp b/ui/qt/main.cpp
index a4c27a97fb..2b838c9105 100644
--- a/ui/qt/main.cpp
+++ b/ui/qt/main.cpp
@@ -28,8 +28,8 @@
#include "wsutil/wsgetopt.h"
#endif
-#include <wsutil/clopts_common.h>
-#include <wsutil/cmdarg_err.h>
+#include <ui/clopts_common.h>
+#include <ui/cmdarg_err.h>
#include <wsutil/filesystem.h>
#include <wsutil/privileges.h>
#ifdef HAVE_PLUGINS