summaryrefslogtreecommitdiffstats
path: root/epan/dfilter/sttype-string.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dfilter/sttype-string.c
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dfilter/sttype-string.c')
-rw-r--r--epan/dfilter/sttype-string.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/epan/dfilter/sttype-string.c b/epan/dfilter/sttype-string.c
new file mode 100644
index 0000000..62fe203
--- /dev/null
+++ b/epan/dfilter/sttype-string.c
@@ -0,0 +1,88 @@
+/*
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 2001 Gerald Combs
+ *
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "syntax-tree.h"
+#include <wsutil/str_util.h>
+
+static void *
+string_dup(gconstpointer string)
+{
+ return g_strdup(string);
+}
+
+static void
+string_free(void *value)
+{
+ g_free(value);
+}
+
+static char *
+string_tostr(const void *data, bool pretty _U_)
+{
+ return g_strdup(data);
+}
+
+static void *
+gstring_dup(gconstpointer value)
+{
+ const GString *gs = value;
+ return g_string_new_len(gs->str, gs->len);
+}
+
+static void
+gstring_free(void *value)
+{
+ g_string_free(value, true);
+}
+
+static char *
+gstring_tostr(const void *value, bool pretty _U_)
+{
+ const GString *gs = value;
+ return ws_escape_string_len(NULL, gs->str, gs->len, false);
+}
+
+
+void
+sttype_register_string(void)
+{
+ static sttype_t string_type = {
+ STTYPE_STRING,
+ "STRING",
+ NULL,
+ gstring_free,
+ gstring_dup,
+ gstring_tostr
+ };
+
+ static sttype_t literal_type = {
+ STTYPE_LITERAL,
+ "LITERAL",
+ NULL,
+ string_free,
+ string_dup,
+ string_tostr
+ };
+
+ sttype_register(&string_type);
+ sttype_register(&literal_type);
+}
+
+/*
+ * Editor modelines - https://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 8
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * End:
+ *
+ * vi: set shiftwidth=8 tabstop=8 noexpandtab:
+ * :indentSize=8:tabSize=8:noTabs=false:
+ */